chen-typescript
Version:
TypeScript is a language for application scale JavaScript development
712 lines (708 loc) • 3.59 MB
JavaScript
/*! *****************************************************************************
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
this file except in compliance with the License. You may obtain a copy of the
License at http://www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABLITY OR NON-INFRINGEMENT.
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
var ts;
(function (ts) {
// token > SyntaxKind.Identifer => token is a keyword
// Also, If you add a new SyntaxKind be sure to keep the `Markers` section at the bottom in sync
(function (SyntaxKind) {
SyntaxKind[SyntaxKind["Unknown"] = 0] = "Unknown";
SyntaxKind[SyntaxKind["EndOfFileToken"] = 1] = "EndOfFileToken";
SyntaxKind[SyntaxKind["SingleLineCommentTrivia"] = 2] = "SingleLineCommentTrivia";
SyntaxKind[SyntaxKind["MultiLineCommentTrivia"] = 3] = "MultiLineCommentTrivia";
SyntaxKind[SyntaxKind["NewLineTrivia"] = 4] = "NewLineTrivia";
SyntaxKind[SyntaxKind["WhitespaceTrivia"] = 5] = "WhitespaceTrivia";
// We detect and preserve #! on the first line
SyntaxKind[SyntaxKind["ShebangTrivia"] = 6] = "ShebangTrivia";
// We detect and provide better error recovery when we encounter a git merge marker. This
// allows us to edit files with git-conflict markers in them in a much more pleasant manner.
SyntaxKind[SyntaxKind["ConflictMarkerTrivia"] = 7] = "ConflictMarkerTrivia";
// Literals
SyntaxKind[SyntaxKind["NumericLiteral"] = 8] = "NumericLiteral";
SyntaxKind[SyntaxKind["StringLiteral"] = 9] = "StringLiteral";
SyntaxKind[SyntaxKind["RegularExpressionLiteral"] = 10] = "RegularExpressionLiteral";
SyntaxKind[SyntaxKind["NoSubstitutionTemplateLiteral"] = 11] = "NoSubstitutionTemplateLiteral";
// Pseudo-literals
SyntaxKind[SyntaxKind["TemplateHead"] = 12] = "TemplateHead";
SyntaxKind[SyntaxKind["TemplateMiddle"] = 13] = "TemplateMiddle";
SyntaxKind[SyntaxKind["TemplateTail"] = 14] = "TemplateTail";
// Punctuation
SyntaxKind[SyntaxKind["OpenBraceToken"] = 15] = "OpenBraceToken";
SyntaxKind[SyntaxKind["CloseBraceToken"] = 16] = "CloseBraceToken";
SyntaxKind[SyntaxKind["OpenParenToken"] = 17] = "OpenParenToken";
SyntaxKind[SyntaxKind["CloseParenToken"] = 18] = "CloseParenToken";
SyntaxKind[SyntaxKind["OpenBracketToken"] = 19] = "OpenBracketToken";
SyntaxKind[SyntaxKind["CloseBracketToken"] = 20] = "CloseBracketToken";
SyntaxKind[SyntaxKind["DotToken"] = 21] = "DotToken";
SyntaxKind[SyntaxKind["DotDotDotToken"] = 22] = "DotDotDotToken";
SyntaxKind[SyntaxKind["SemicolonToken"] = 23] = "SemicolonToken";
SyntaxKind[SyntaxKind["CommaToken"] = 24] = "CommaToken";
SyntaxKind[SyntaxKind["LessThanToken"] = 25] = "LessThanToken";
SyntaxKind[SyntaxKind["LessThanSlashToken"] = 26] = "LessThanSlashToken";
SyntaxKind[SyntaxKind["GreaterThanToken"] = 27] = "GreaterThanToken";
SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 28] = "LessThanEqualsToken";
SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 29] = "GreaterThanEqualsToken";
SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 30] = "EqualsEqualsToken";
SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 31] = "ExclamationEqualsToken";
SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 32] = "EqualsEqualsEqualsToken";
SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 33] = "ExclamationEqualsEqualsToken";
SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 34] = "EqualsGreaterThanToken";
SyntaxKind[SyntaxKind["PlusToken"] = 35] = "PlusToken";
SyntaxKind[SyntaxKind["MinusToken"] = 36] = "MinusToken";
SyntaxKind[SyntaxKind["AsteriskToken"] = 37] = "AsteriskToken";
SyntaxKind[SyntaxKind["AsteriskAsteriskToken"] = 38] = "AsteriskAsteriskToken";
SyntaxKind[SyntaxKind["SlashToken"] = 39] = "SlashToken";
SyntaxKind[SyntaxKind["PercentToken"] = 40] = "PercentToken";
SyntaxKind[SyntaxKind["PlusPlusToken"] = 41] = "PlusPlusToken";
SyntaxKind[SyntaxKind["MinusMinusToken"] = 42] = "MinusMinusToken";
SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 43] = "LessThanLessThanToken";
SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 44] = "GreaterThanGreaterThanToken";
SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 45] = "GreaterThanGreaterThanGreaterThanToken";
SyntaxKind[SyntaxKind["AmpersandToken"] = 46] = "AmpersandToken";
SyntaxKind[SyntaxKind["BarToken"] = 47] = "BarToken";
SyntaxKind[SyntaxKind["CaretToken"] = 48] = "CaretToken";
SyntaxKind[SyntaxKind["ExclamationToken"] = 49] = "ExclamationToken";
SyntaxKind[SyntaxKind["TildeToken"] = 50] = "TildeToken";
SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 51] = "AmpersandAmpersandToken";
SyntaxKind[SyntaxKind["BarBarToken"] = 52] = "BarBarToken";
SyntaxKind[SyntaxKind["QuestionToken"] = 53] = "QuestionToken";
SyntaxKind[SyntaxKind["ColonToken"] = 54] = "ColonToken";
SyntaxKind[SyntaxKind["AtToken"] = 55] = "AtToken";
// Assignments
SyntaxKind[SyntaxKind["EqualsToken"] = 56] = "EqualsToken";
SyntaxKind[SyntaxKind["PlusEqualsToken"] = 57] = "PlusEqualsToken";
SyntaxKind[SyntaxKind["MinusEqualsToken"] = 58] = "MinusEqualsToken";
SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 59] = "AsteriskEqualsToken";
SyntaxKind[SyntaxKind["AsteriskAsteriskEqualsToken"] = 60] = "AsteriskAsteriskEqualsToken";
SyntaxKind[SyntaxKind["SlashEqualsToken"] = 61] = "SlashEqualsToken";
SyntaxKind[SyntaxKind["PercentEqualsToken"] = 62] = "PercentEqualsToken";
SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 63] = "LessThanLessThanEqualsToken";
SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 64] = "GreaterThanGreaterThanEqualsToken";
SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 65] = "GreaterThanGreaterThanGreaterThanEqualsToken";
SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 66] = "AmpersandEqualsToken";
SyntaxKind[SyntaxKind["BarEqualsToken"] = 67] = "BarEqualsToken";
SyntaxKind[SyntaxKind["CaretEqualsToken"] = 68] = "CaretEqualsToken";
// Identifiers
SyntaxKind[SyntaxKind["Identifier"] = 69] = "Identifier";
// Reserved words
SyntaxKind[SyntaxKind["BreakKeyword"] = 70] = "BreakKeyword";
SyntaxKind[SyntaxKind["CaseKeyword"] = 71] = "CaseKeyword";
SyntaxKind[SyntaxKind["CatchKeyword"] = 72] = "CatchKeyword";
SyntaxKind[SyntaxKind["ClassKeyword"] = 73] = "ClassKeyword";
SyntaxKind[SyntaxKind["ConstKeyword"] = 74] = "ConstKeyword";
SyntaxKind[SyntaxKind["ContinueKeyword"] = 75] = "ContinueKeyword";
SyntaxKind[SyntaxKind["DebuggerKeyword"] = 76] = "DebuggerKeyword";
SyntaxKind[SyntaxKind["DefaultKeyword"] = 77] = "DefaultKeyword";
SyntaxKind[SyntaxKind["DeleteKeyword"] = 78] = "DeleteKeyword";
SyntaxKind[SyntaxKind["DoKeyword"] = 79] = "DoKeyword";
SyntaxKind[SyntaxKind["ElseKeyword"] = 80] = "ElseKeyword";
SyntaxKind[SyntaxKind["EnumKeyword"] = 81] = "EnumKeyword";
SyntaxKind[SyntaxKind["ExportKeyword"] = 82] = "ExportKeyword";
SyntaxKind[SyntaxKind["ExtendsKeyword"] = 83] = "ExtendsKeyword";
SyntaxKind[SyntaxKind["FalseKeyword"] = 84] = "FalseKeyword";
SyntaxKind[SyntaxKind["FinallyKeyword"] = 85] = "FinallyKeyword";
SyntaxKind[SyntaxKind["ForKeyword"] = 86] = "ForKeyword";
SyntaxKind[SyntaxKind["FunctionKeyword"] = 87] = "FunctionKeyword";
SyntaxKind[SyntaxKind["IfKeyword"] = 88] = "IfKeyword";
SyntaxKind[SyntaxKind["ImportKeyword"] = 89] = "ImportKeyword";
SyntaxKind[SyntaxKind["InKeyword"] = 90] = "InKeyword";
SyntaxKind[SyntaxKind["InstanceOfKeyword"] = 91] = "InstanceOfKeyword";
SyntaxKind[SyntaxKind["NewKeyword"] = 92] = "NewKeyword";
SyntaxKind[SyntaxKind["NullKeyword"] = 93] = "NullKeyword";
SyntaxKind[SyntaxKind["ReturnKeyword"] = 94] = "ReturnKeyword";
SyntaxKind[SyntaxKind["SuperKeyword"] = 95] = "SuperKeyword";
SyntaxKind[SyntaxKind["SwitchKeyword"] = 96] = "SwitchKeyword";
SyntaxKind[SyntaxKind["ThisKeyword"] = 97] = "ThisKeyword";
SyntaxKind[SyntaxKind["ThrowKeyword"] = 98] = "ThrowKeyword";
SyntaxKind[SyntaxKind["TrueKeyword"] = 99] = "TrueKeyword";
SyntaxKind[SyntaxKind["TryKeyword"] = 100] = "TryKeyword";
SyntaxKind[SyntaxKind["TypeOfKeyword"] = 101] = "TypeOfKeyword";
SyntaxKind[SyntaxKind["VarKeyword"] = 102] = "VarKeyword";
SyntaxKind[SyntaxKind["VoidKeyword"] = 103] = "VoidKeyword";
SyntaxKind[SyntaxKind["WhileKeyword"] = 104] = "WhileKeyword";
SyntaxKind[SyntaxKind["WithKeyword"] = 105] = "WithKeyword";
// Strict mode reserved words
SyntaxKind[SyntaxKind["ImplementsKeyword"] = 106] = "ImplementsKeyword";
SyntaxKind[SyntaxKind["InterfaceKeyword"] = 107] = "InterfaceKeyword";
SyntaxKind[SyntaxKind["LetKeyword"] = 108] = "LetKeyword";
SyntaxKind[SyntaxKind["PackageKeyword"] = 109] = "PackageKeyword";
SyntaxKind[SyntaxKind["PrivateKeyword"] = 110] = "PrivateKeyword";
SyntaxKind[SyntaxKind["ProtectedKeyword"] = 111] = "ProtectedKeyword";
SyntaxKind[SyntaxKind["PublicKeyword"] = 112] = "PublicKeyword";
SyntaxKind[SyntaxKind["StaticKeyword"] = 113] = "StaticKeyword";
SyntaxKind[SyntaxKind["YieldKeyword"] = 114] = "YieldKeyword";
// Contextual keywords
SyntaxKind[SyntaxKind["AbstractKeyword"] = 115] = "AbstractKeyword";
SyntaxKind[SyntaxKind["AsKeyword"] = 116] = "AsKeyword";
SyntaxKind[SyntaxKind["AnyKeyword"] = 117] = "AnyKeyword";
SyntaxKind[SyntaxKind["AsyncKeyword"] = 118] = "AsyncKeyword";
SyntaxKind[SyntaxKind["AwaitKeyword"] = 119] = "AwaitKeyword";
SyntaxKind[SyntaxKind["BooleanKeyword"] = 120] = "BooleanKeyword";
SyntaxKind[SyntaxKind["ConstructorKeyword"] = 121] = "ConstructorKeyword";
SyntaxKind[SyntaxKind["DeclareKeyword"] = 122] = "DeclareKeyword";
SyntaxKind[SyntaxKind["GetKeyword"] = 123] = "GetKeyword";
SyntaxKind[SyntaxKind["IsKeyword"] = 124] = "IsKeyword";
SyntaxKind[SyntaxKind["ModuleKeyword"] = 125] = "ModuleKeyword";
SyntaxKind[SyntaxKind["NamespaceKeyword"] = 126] = "NamespaceKeyword";
SyntaxKind[SyntaxKind["NeverKeyword"] = 127] = "NeverKeyword";
SyntaxKind[SyntaxKind["ReadonlyKeyword"] = 128] = "ReadonlyKeyword";
SyntaxKind[SyntaxKind["RequireKeyword"] = 129] = "RequireKeyword";
SyntaxKind[SyntaxKind["NumberKeyword"] = 130] = "NumberKeyword";
SyntaxKind[SyntaxKind["SetKeyword"] = 131] = "SetKeyword";
SyntaxKind[SyntaxKind["StringKeyword"] = 132] = "StringKeyword";
SyntaxKind[SyntaxKind["SymbolKeyword"] = 133] = "SymbolKeyword";
SyntaxKind[SyntaxKind["TypeKeyword"] = 134] = "TypeKeyword";
SyntaxKind[SyntaxKind["UndefinedKeyword"] = 135] = "UndefinedKeyword";
SyntaxKind[SyntaxKind["FromKeyword"] = 136] = "FromKeyword";
SyntaxKind[SyntaxKind["GlobalKeyword"] = 137] = "GlobalKeyword";
SyntaxKind[SyntaxKind["OfKeyword"] = 138] = "OfKeyword";
// Parse tree nodes
// Names
SyntaxKind[SyntaxKind["QualifiedName"] = 139] = "QualifiedName";
SyntaxKind[SyntaxKind["ComputedPropertyName"] = 140] = "ComputedPropertyName";
// Signature elements
SyntaxKind[SyntaxKind["TypeParameter"] = 141] = "TypeParameter";
SyntaxKind[SyntaxKind["Parameter"] = 142] = "Parameter";
SyntaxKind[SyntaxKind["Decorator"] = 143] = "Decorator";
// TypeMember
SyntaxKind[SyntaxKind["PropertySignature"] = 144] = "PropertySignature";
SyntaxKind[SyntaxKind["PropertyDeclaration"] = 145] = "PropertyDeclaration";
SyntaxKind[SyntaxKind["MethodSignature"] = 146] = "MethodSignature";
SyntaxKind[SyntaxKind["MethodDeclaration"] = 147] = "MethodDeclaration";
SyntaxKind[SyntaxKind["Constructor"] = 148] = "Constructor";
SyntaxKind[SyntaxKind["GetAccessor"] = 149] = "GetAccessor";
SyntaxKind[SyntaxKind["SetAccessor"] = 150] = "SetAccessor";
SyntaxKind[SyntaxKind["CallSignature"] = 151] = "CallSignature";
SyntaxKind[SyntaxKind["ConstructSignature"] = 152] = "ConstructSignature";
SyntaxKind[SyntaxKind["IndexSignature"] = 153] = "IndexSignature";
// Type
SyntaxKind[SyntaxKind["TypePredicate"] = 154] = "TypePredicate";
SyntaxKind[SyntaxKind["TypeReference"] = 155] = "TypeReference";
SyntaxKind[SyntaxKind["FunctionType"] = 156] = "FunctionType";
SyntaxKind[SyntaxKind["ConstructorType"] = 157] = "ConstructorType";
SyntaxKind[SyntaxKind["TypeQuery"] = 158] = "TypeQuery";
SyntaxKind[SyntaxKind["TypeLiteral"] = 159] = "TypeLiteral";
SyntaxKind[SyntaxKind["ArrayType"] = 160] = "ArrayType";
SyntaxKind[SyntaxKind["TupleType"] = 161] = "TupleType";
SyntaxKind[SyntaxKind["UnionType"] = 162] = "UnionType";
SyntaxKind[SyntaxKind["IntersectionType"] = 163] = "IntersectionType";
SyntaxKind[SyntaxKind["ParenthesizedType"] = 164] = "ParenthesizedType";
SyntaxKind[SyntaxKind["ThisType"] = 165] = "ThisType";
SyntaxKind[SyntaxKind["LiteralType"] = 166] = "LiteralType";
// Binding patterns
SyntaxKind[SyntaxKind["ObjectBindingPattern"] = 167] = "ObjectBindingPattern";
SyntaxKind[SyntaxKind["ArrayBindingPattern"] = 168] = "ArrayBindingPattern";
SyntaxKind[SyntaxKind["BindingElement"] = 169] = "BindingElement";
// Expression
SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 170] = "ArrayLiteralExpression";
SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 171] = "ObjectLiteralExpression";
SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 172] = "PropertyAccessExpression";
SyntaxKind[SyntaxKind["ElementAccessExpression"] = 173] = "ElementAccessExpression";
SyntaxKind[SyntaxKind["CallExpression"] = 174] = "CallExpression";
SyntaxKind[SyntaxKind["NewExpression"] = 175] = "NewExpression";
SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 176] = "TaggedTemplateExpression";
SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 177] = "TypeAssertionExpression";
SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 178] = "ParenthesizedExpression";
SyntaxKind[SyntaxKind["FunctionExpression"] = 179] = "FunctionExpression";
SyntaxKind[SyntaxKind["ArrowFunction"] = 180] = "ArrowFunction";
SyntaxKind[SyntaxKind["DeleteExpression"] = 181] = "DeleteExpression";
SyntaxKind[SyntaxKind["TypeOfExpression"] = 182] = "TypeOfExpression";
SyntaxKind[SyntaxKind["VoidExpression"] = 183] = "VoidExpression";
SyntaxKind[SyntaxKind["AwaitExpression"] = 184] = "AwaitExpression";
SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 185] = "PrefixUnaryExpression";
SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 186] = "PostfixUnaryExpression";
SyntaxKind[SyntaxKind["BinaryExpression"] = 187] = "BinaryExpression";
SyntaxKind[SyntaxKind["ConditionalExpression"] = 188] = "ConditionalExpression";
SyntaxKind[SyntaxKind["TemplateExpression"] = 189] = "TemplateExpression";
SyntaxKind[SyntaxKind["YieldExpression"] = 190] = "YieldExpression";
SyntaxKind[SyntaxKind["SpreadElementExpression"] = 191] = "SpreadElementExpression";
SyntaxKind[SyntaxKind["ClassExpression"] = 192] = "ClassExpression";
SyntaxKind[SyntaxKind["OmittedExpression"] = 193] = "OmittedExpression";
SyntaxKind[SyntaxKind["ExpressionWithTypeArguments"] = 194] = "ExpressionWithTypeArguments";
SyntaxKind[SyntaxKind["AsExpression"] = 195] = "AsExpression";
SyntaxKind[SyntaxKind["NonNullExpression"] = 196] = "NonNullExpression";
// Misc
SyntaxKind[SyntaxKind["TemplateSpan"] = 197] = "TemplateSpan";
SyntaxKind[SyntaxKind["SemicolonClassElement"] = 198] = "SemicolonClassElement";
// Element
SyntaxKind[SyntaxKind["Block"] = 199] = "Block";
SyntaxKind[SyntaxKind["VariableStatement"] = 200] = "VariableStatement";
SyntaxKind[SyntaxKind["EmptyStatement"] = 201] = "EmptyStatement";
SyntaxKind[SyntaxKind["ExpressionStatement"] = 202] = "ExpressionStatement";
SyntaxKind[SyntaxKind["IfStatement"] = 203] = "IfStatement";
SyntaxKind[SyntaxKind["DoStatement"] = 204] = "DoStatement";
SyntaxKind[SyntaxKind["WhileStatement"] = 205] = "WhileStatement";
SyntaxKind[SyntaxKind["ForStatement"] = 206] = "ForStatement";
SyntaxKind[SyntaxKind["ForInStatement"] = 207] = "ForInStatement";
SyntaxKind[SyntaxKind["ForOfStatement"] = 208] = "ForOfStatement";
SyntaxKind[SyntaxKind["ContinueStatement"] = 209] = "ContinueStatement";
SyntaxKind[SyntaxKind["BreakStatement"] = 210] = "BreakStatement";
SyntaxKind[SyntaxKind["ReturnStatement"] = 211] = "ReturnStatement";
SyntaxKind[SyntaxKind["WithStatement"] = 212] = "WithStatement";
SyntaxKind[SyntaxKind["SwitchStatement"] = 213] = "SwitchStatement";
SyntaxKind[SyntaxKind["LabeledStatement"] = 214] = "LabeledStatement";
SyntaxKind[SyntaxKind["ThrowStatement"] = 215] = "ThrowStatement";
SyntaxKind[SyntaxKind["TryStatement"] = 216] = "TryStatement";
SyntaxKind[SyntaxKind["DebuggerStatement"] = 217] = "DebuggerStatement";
SyntaxKind[SyntaxKind["VariableDeclaration"] = 218] = "VariableDeclaration";
SyntaxKind[SyntaxKind["VariableDeclarationList"] = 219] = "VariableDeclarationList";
SyntaxKind[SyntaxKind["FunctionDeclaration"] = 220] = "FunctionDeclaration";
SyntaxKind[SyntaxKind["ClassDeclaration"] = 221] = "ClassDeclaration";
SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 222] = "InterfaceDeclaration";
SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 223] = "TypeAliasDeclaration";
SyntaxKind[SyntaxKind["EnumDeclaration"] = 224] = "EnumDeclaration";
SyntaxKind[SyntaxKind["ModuleDeclaration"] = 225] = "ModuleDeclaration";
SyntaxKind[SyntaxKind["ModuleBlock"] = 226] = "ModuleBlock";
SyntaxKind[SyntaxKind["CaseBlock"] = 227] = "CaseBlock";
SyntaxKind[SyntaxKind["NamespaceExportDeclaration"] = 228] = "NamespaceExportDeclaration";
SyntaxKind[SyntaxKind["ImportEqualsDeclaration"] = 229] = "ImportEqualsDeclaration";
SyntaxKind[SyntaxKind["ImportDeclaration"] = 230] = "ImportDeclaration";
SyntaxKind[SyntaxKind["ImportClause"] = 231] = "ImportClause";
SyntaxKind[SyntaxKind["NamespaceImport"] = 232] = "NamespaceImport";
SyntaxKind[SyntaxKind["NamedImports"] = 233] = "NamedImports";
SyntaxKind[SyntaxKind["ImportSpecifier"] = 234] = "ImportSpecifier";
SyntaxKind[SyntaxKind["ExportAssignment"] = 235] = "ExportAssignment";
SyntaxKind[SyntaxKind["ExportDeclaration"] = 236] = "ExportDeclaration";
SyntaxKind[SyntaxKind["NamedExports"] = 237] = "NamedExports";
SyntaxKind[SyntaxKind["ExportSpecifier"] = 238] = "ExportSpecifier";
SyntaxKind[SyntaxKind["MissingDeclaration"] = 239] = "MissingDeclaration";
// Module references
SyntaxKind[SyntaxKind["ExternalModuleReference"] = 240] = "ExternalModuleReference";
// JSX
SyntaxKind[SyntaxKind["JsxElement"] = 241] = "JsxElement";
SyntaxKind[SyntaxKind["JsxSelfClosingElement"] = 242] = "JsxSelfClosingElement";
SyntaxKind[SyntaxKind["JsxOpeningElement"] = 243] = "JsxOpeningElement";
SyntaxKind[SyntaxKind["JsxText"] = 244] = "JsxText";
SyntaxKind[SyntaxKind["JsxClosingElement"] = 245] = "JsxClosingElement";
SyntaxKind[SyntaxKind["JsxAttribute"] = 246] = "JsxAttribute";
SyntaxKind[SyntaxKind["JsxSpreadAttribute"] = 247] = "JsxSpreadAttribute";
SyntaxKind[SyntaxKind["JsxExpression"] = 248] = "JsxExpression";
// Clauses
SyntaxKind[SyntaxKind["CaseClause"] = 249] = "CaseClause";
SyntaxKind[SyntaxKind["DefaultClause"] = 250] = "DefaultClause";
SyntaxKind[SyntaxKind["HeritageClause"] = 251] = "HeritageClause";
SyntaxKind[SyntaxKind["CatchClause"] = 252] = "CatchClause";
// Property assignments
SyntaxKind[SyntaxKind["PropertyAssignment"] = 253] = "PropertyAssignment";
SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 254] = "ShorthandPropertyAssignment";
// Enum
SyntaxKind[SyntaxKind["EnumMember"] = 255] = "EnumMember";
// Top-level nodes
SyntaxKind[SyntaxKind["SourceFile"] = 256] = "SourceFile";
// JSDoc nodes
SyntaxKind[SyntaxKind["JSDocTypeExpression"] = 257] = "JSDocTypeExpression";
// The * type
SyntaxKind[SyntaxKind["JSDocAllType"] = 258] = "JSDocAllType";
// The ? type
SyntaxKind[SyntaxKind["JSDocUnknownType"] = 259] = "JSDocUnknownType";
SyntaxKind[SyntaxKind["JSDocArrayType"] = 260] = "JSDocArrayType";
SyntaxKind[SyntaxKind["JSDocUnionType"] = 261] = "JSDocUnionType";
SyntaxKind[SyntaxKind["JSDocTupleType"] = 262] = "JSDocTupleType";
SyntaxKind[SyntaxKind["JSDocNullableType"] = 263] = "JSDocNullableType";
SyntaxKind[SyntaxKind["JSDocNonNullableType"] = 264] = "JSDocNonNullableType";
SyntaxKind[SyntaxKind["JSDocRecordType"] = 265] = "JSDocRecordType";
SyntaxKind[SyntaxKind["JSDocRecordMember"] = 266] = "JSDocRecordMember";
SyntaxKind[SyntaxKind["JSDocTypeReference"] = 267] = "JSDocTypeReference";
SyntaxKind[SyntaxKind["JSDocOptionalType"] = 268] = "JSDocOptionalType";
SyntaxKind[SyntaxKind["JSDocFunctionType"] = 269] = "JSDocFunctionType";
SyntaxKind[SyntaxKind["JSDocVariadicType"] = 270] = "JSDocVariadicType";
SyntaxKind[SyntaxKind["JSDocConstructorType"] = 271] = "JSDocConstructorType";
SyntaxKind[SyntaxKind["JSDocThisType"] = 272] = "JSDocThisType";
SyntaxKind[SyntaxKind["JSDocComment"] = 273] = "JSDocComment";
SyntaxKind[SyntaxKind["JSDocTag"] = 274] = "JSDocTag";
SyntaxKind[SyntaxKind["JSDocParameterTag"] = 275] = "JSDocParameterTag";
SyntaxKind[SyntaxKind["JSDocReturnTag"] = 276] = "JSDocReturnTag";
SyntaxKind[SyntaxKind["JSDocTypeTag"] = 277] = "JSDocTypeTag";
SyntaxKind[SyntaxKind["JSDocTemplateTag"] = 278] = "JSDocTemplateTag";
SyntaxKind[SyntaxKind["JSDocTypedefTag"] = 279] = "JSDocTypedefTag";
SyntaxKind[SyntaxKind["JSDocPropertyTag"] = 280] = "JSDocPropertyTag";
SyntaxKind[SyntaxKind["JSDocTypeLiteral"] = 281] = "JSDocTypeLiteral";
SyntaxKind[SyntaxKind["JSDocLiteralType"] = 282] = "JSDocLiteralType";
SyntaxKind[SyntaxKind["JSDocNullKeyword"] = 283] = "JSDocNullKeyword";
SyntaxKind[SyntaxKind["JSDocUndefinedKeyword"] = 284] = "JSDocUndefinedKeyword";
SyntaxKind[SyntaxKind["JSDocNeverKeyword"] = 285] = "JSDocNeverKeyword";
// Synthesized list
SyntaxKind[SyntaxKind["SyntaxList"] = 286] = "SyntaxList";
// Enum value count
SyntaxKind[SyntaxKind["Count"] = 287] = "Count";
// Markers
SyntaxKind[SyntaxKind["FirstAssignment"] = 56] = "FirstAssignment";
SyntaxKind[SyntaxKind["LastAssignment"] = 68] = "LastAssignment";
SyntaxKind[SyntaxKind["FirstReservedWord"] = 70] = "FirstReservedWord";
SyntaxKind[SyntaxKind["LastReservedWord"] = 105] = "LastReservedWord";
SyntaxKind[SyntaxKind["FirstKeyword"] = 70] = "FirstKeyword";
SyntaxKind[SyntaxKind["LastKeyword"] = 138] = "LastKeyword";
SyntaxKind[SyntaxKind["FirstFutureReservedWord"] = 106] = "FirstFutureReservedWord";
SyntaxKind[SyntaxKind["LastFutureReservedWord"] = 114] = "LastFutureReservedWord";
SyntaxKind[SyntaxKind["FirstTypeNode"] = 154] = "FirstTypeNode";
SyntaxKind[SyntaxKind["LastTypeNode"] = 166] = "LastTypeNode";
SyntaxKind[SyntaxKind["FirstPunctuation"] = 15] = "FirstPunctuation";
SyntaxKind[SyntaxKind["LastPunctuation"] = 68] = "LastPunctuation";
SyntaxKind[SyntaxKind["FirstToken"] = 0] = "FirstToken";
SyntaxKind[SyntaxKind["LastToken"] = 138] = "LastToken";
SyntaxKind[SyntaxKind["FirstTriviaToken"] = 2] = "FirstTriviaToken";
SyntaxKind[SyntaxKind["LastTriviaToken"] = 7] = "LastTriviaToken";
SyntaxKind[SyntaxKind["FirstLiteralToken"] = 8] = "FirstLiteralToken";
SyntaxKind[SyntaxKind["LastLiteralToken"] = 11] = "LastLiteralToken";
SyntaxKind[SyntaxKind["FirstTemplateToken"] = 11] = "FirstTemplateToken";
SyntaxKind[SyntaxKind["LastTemplateToken"] = 14] = "LastTemplateToken";
SyntaxKind[SyntaxKind["FirstBinaryOperator"] = 25] = "FirstBinaryOperator";
SyntaxKind[SyntaxKind["LastBinaryOperator"] = 68] = "LastBinaryOperator";
SyntaxKind[SyntaxKind["FirstNode"] = 139] = "FirstNode";
SyntaxKind[SyntaxKind["FirstJSDocNode"] = 257] = "FirstJSDocNode";
SyntaxKind[SyntaxKind["LastJSDocNode"] = 282] = "LastJSDocNode";
SyntaxKind[SyntaxKind["FirstJSDocTagNode"] = 273] = "FirstJSDocTagNode";
SyntaxKind[SyntaxKind["LastJSDocTagNode"] = 285] = "LastJSDocTagNode";
})(ts.SyntaxKind || (ts.SyntaxKind = {}));
var SyntaxKind = ts.SyntaxKind;
(function (NodeFlags) {
NodeFlags[NodeFlags["None"] = 0] = "None";
NodeFlags[NodeFlags["Export"] = 1] = "Export";
NodeFlags[NodeFlags["Ambient"] = 2] = "Ambient";
NodeFlags[NodeFlags["Public"] = 4] = "Public";
NodeFlags[NodeFlags["Private"] = 8] = "Private";
NodeFlags[NodeFlags["Protected"] = 16] = "Protected";
NodeFlags[NodeFlags["Static"] = 32] = "Static";
NodeFlags[NodeFlags["Readonly"] = 64] = "Readonly";
NodeFlags[NodeFlags["Abstract"] = 128] = "Abstract";
NodeFlags[NodeFlags["Async"] = 256] = "Async";
NodeFlags[NodeFlags["Default"] = 512] = "Default";
NodeFlags[NodeFlags["Let"] = 1024] = "Let";
NodeFlags[NodeFlags["Const"] = 2048] = "Const";
NodeFlags[NodeFlags["Namespace"] = 4096] = "Namespace";
NodeFlags[NodeFlags["ExportContext"] = 8192] = "ExportContext";
NodeFlags[NodeFlags["ContainsThis"] = 16384] = "ContainsThis";
NodeFlags[NodeFlags["HasImplicitReturn"] = 32768] = "HasImplicitReturn";
NodeFlags[NodeFlags["HasExplicitReturn"] = 65536] = "HasExplicitReturn";
NodeFlags[NodeFlags["GlobalAugmentation"] = 131072] = "GlobalAugmentation";
NodeFlags[NodeFlags["HasClassExtends"] = 262144] = "HasClassExtends";
NodeFlags[NodeFlags["HasDecorators"] = 524288] = "HasDecorators";
NodeFlags[NodeFlags["HasParamDecorators"] = 1048576] = "HasParamDecorators";
NodeFlags[NodeFlags["HasAsyncFunctions"] = 2097152] = "HasAsyncFunctions";
NodeFlags[NodeFlags["DisallowInContext"] = 4194304] = "DisallowInContext";
NodeFlags[NodeFlags["YieldContext"] = 8388608] = "YieldContext";
NodeFlags[NodeFlags["DecoratorContext"] = 16777216] = "DecoratorContext";
NodeFlags[NodeFlags["AwaitContext"] = 33554432] = "AwaitContext";
NodeFlags[NodeFlags["ThisNodeHasError"] = 67108864] = "ThisNodeHasError";
NodeFlags[NodeFlags["JavaScriptFile"] = 134217728] = "JavaScriptFile";
NodeFlags[NodeFlags["ThisNodeOrAnySubNodesHasError"] = 268435456] = "ThisNodeOrAnySubNodesHasError";
NodeFlags[NodeFlags["HasAggregatedChildData"] = 536870912] = "HasAggregatedChildData";
NodeFlags[NodeFlags["HasJsxSpreadAttribute"] = 1073741824] = "HasJsxSpreadAttribute";
NodeFlags[NodeFlags["Modifier"] = 1023] = "Modifier";
NodeFlags[NodeFlags["AccessibilityModifier"] = 28] = "AccessibilityModifier";
// Accessibility modifiers and 'readonly' can be attached to a parameter in a constructor to make it a property.
NodeFlags[NodeFlags["ParameterPropertyModifier"] = 92] = "ParameterPropertyModifier";
NodeFlags[NodeFlags["BlockScoped"] = 3072] = "BlockScoped";
NodeFlags[NodeFlags["ReachabilityCheckFlags"] = 98304] = "ReachabilityCheckFlags";
NodeFlags[NodeFlags["EmitHelperFlags"] = 3932160] = "EmitHelperFlags";
NodeFlags[NodeFlags["ReachabilityAndEmitFlags"] = 4030464] = "ReachabilityAndEmitFlags";
// Parsing context flags
NodeFlags[NodeFlags["ContextFlags"] = 197132288] = "ContextFlags";
// Exclude these flags when parsing a Type
NodeFlags[NodeFlags["TypeExcludesFlags"] = 41943040] = "TypeExcludesFlags";
})(ts.NodeFlags || (ts.NodeFlags = {}));
var NodeFlags = ts.NodeFlags;
(function (JsxFlags) {
JsxFlags[JsxFlags["None"] = 0] = "None";
/** An element from a named property of the JSX.IntrinsicElements interface */
JsxFlags[JsxFlags["IntrinsicNamedElement"] = 1] = "IntrinsicNamedElement";
/** An element inferred from the string index signature of the JSX.IntrinsicElements interface */
JsxFlags[JsxFlags["IntrinsicIndexedElement"] = 2] = "IntrinsicIndexedElement";
JsxFlags[JsxFlags["IntrinsicElement"] = 3] = "IntrinsicElement";
})(ts.JsxFlags || (ts.JsxFlags = {}));
var JsxFlags = ts.JsxFlags;
/* @internal */
(function (RelationComparisonResult) {
RelationComparisonResult[RelationComparisonResult["Succeeded"] = 1] = "Succeeded";
RelationComparisonResult[RelationComparisonResult["Failed"] = 2] = "Failed";
RelationComparisonResult[RelationComparisonResult["FailedAndReported"] = 3] = "FailedAndReported";
})(ts.RelationComparisonResult || (ts.RelationComparisonResult = {}));
var RelationComparisonResult = ts.RelationComparisonResult;
(function (FlowFlags) {
FlowFlags[FlowFlags["Unreachable"] = 1] = "Unreachable";
FlowFlags[FlowFlags["Start"] = 2] = "Start";
FlowFlags[FlowFlags["BranchLabel"] = 4] = "BranchLabel";
FlowFlags[FlowFlags["LoopLabel"] = 8] = "LoopLabel";
FlowFlags[FlowFlags["Assignment"] = 16] = "Assignment";
FlowFlags[FlowFlags["TrueCondition"] = 32] = "TrueCondition";
FlowFlags[FlowFlags["FalseCondition"] = 64] = "FalseCondition";
FlowFlags[FlowFlags["SwitchClause"] = 128] = "SwitchClause";
FlowFlags[FlowFlags["Referenced"] = 256] = "Referenced";
FlowFlags[FlowFlags["Shared"] = 512] = "Shared";
FlowFlags[FlowFlags["Label"] = 12] = "Label";
FlowFlags[FlowFlags["Condition"] = 96] = "Condition";
})(ts.FlowFlags || (ts.FlowFlags = {}));
var FlowFlags = ts.FlowFlags;
var OperationCanceledException = (function () {
function OperationCanceledException() {
}
return OperationCanceledException;
}());
ts.OperationCanceledException = OperationCanceledException;
/** Return code used by getEmitOutput function to indicate status of the function */
(function (ExitStatus) {
// Compiler ran successfully. Either this was a simple do-nothing compilation (for example,
// when -version or -help was provided, or this was a normal compilation, no diagnostics
// were produced, and all outputs were generated successfully.
ExitStatus[ExitStatus["Success"] = 0] = "Success";
// Diagnostics were produced and because of them no code was generated.
ExitStatus[ExitStatus["DiagnosticsPresent_OutputsSkipped"] = 1] = "DiagnosticsPresent_OutputsSkipped";
// Diagnostics were produced and outputs were generated in spite of them.
ExitStatus[ExitStatus["DiagnosticsPresent_OutputsGenerated"] = 2] = "DiagnosticsPresent_OutputsGenerated";
})(ts.ExitStatus || (ts.ExitStatus = {}));
var ExitStatus = ts.ExitStatus;
(function (TypeFormatFlags) {
TypeFormatFlags[TypeFormatFlags["None"] = 0] = "None";
TypeFormatFlags[TypeFormatFlags["WriteArrayAsGenericType"] = 1] = "WriteArrayAsGenericType";
TypeFormatFlags[TypeFormatFlags["UseTypeOfFunction"] = 2] = "UseTypeOfFunction";
TypeFormatFlags[TypeFormatFlags["NoTruncation"] = 4] = "NoTruncation";
TypeFormatFlags[TypeFormatFlags["WriteArrowStyleSignature"] = 8] = "WriteArrowStyleSignature";
TypeFormatFlags[TypeFormatFlags["WriteOwnNameForAnyLike"] = 16] = "WriteOwnNameForAnyLike";
TypeFormatFlags[TypeFormatFlags["WriteTypeArgumentsOfSignature"] = 32] = "WriteTypeArgumentsOfSignature";
TypeFormatFlags[TypeFormatFlags["InElementType"] = 64] = "InElementType";
TypeFormatFlags[TypeFormatFlags["UseFullyQualifiedType"] = 128] = "UseFullyQualifiedType";
TypeFormatFlags[TypeFormatFlags["InFirstTypeArgument"] = 256] = "InFirstTypeArgument";
TypeFormatFlags[TypeFormatFlags["InTypeAlias"] = 512] = "InTypeAlias";
})(ts.TypeFormatFlags || (ts.TypeFormatFlags = {}));
var TypeFormatFlags = ts.TypeFormatFlags;
(function (SymbolFormatFlags) {
SymbolFormatFlags[SymbolFormatFlags["None"] = 0] = "None";
// Write symbols's type argument if it is instantiated symbol
// eg. class C<T> { p: T } <-- Show p as C<T>.p here
// var a: C<number>;
// var p = a.p; <--- Here p is property of C<number> so show it as C<number>.p instead of just C.p
SymbolFormatFlags[SymbolFormatFlags["WriteTypeParametersOrArguments"] = 1] = "WriteTypeParametersOrArguments";
// Use only external alias information to get the symbol name in the given context
// eg. module m { export class c { } } import x = m.c;
// When this flag is specified m.c will be used to refer to the class instead of alias symbol x
SymbolFormatFlags[SymbolFormatFlags["UseOnlyExternalAliasing"] = 2] = "UseOnlyExternalAliasing";
})(ts.SymbolFormatFlags || (ts.SymbolFormatFlags = {}));
var SymbolFormatFlags = ts.SymbolFormatFlags;
/* @internal */
(function (SymbolAccessibility) {
SymbolAccessibility[SymbolAccessibility["Accessible"] = 0] = "Accessible";
SymbolAccessibility[SymbolAccessibility["NotAccessible"] = 1] = "NotAccessible";
SymbolAccessibility[SymbolAccessibility["CannotBeNamed"] = 2] = "CannotBeNamed";
})(ts.SymbolAccessibility || (ts.SymbolAccessibility = {}));
var SymbolAccessibility = ts.SymbolAccessibility;
(function (TypePredicateKind) {
TypePredicateKind[TypePredicateKind["This"] = 0] = "This";
TypePredicateKind[TypePredicateKind["Identifier"] = 1] = "Identifier";
})(ts.TypePredicateKind || (ts.TypePredicateKind = {}));
var TypePredicateKind = ts.TypePredicateKind;
/** Indicates how to serialize the name for a TypeReferenceNode when emitting decorator
* metadata */
/* @internal */
(function (TypeReferenceSerializationKind) {
TypeReferenceSerializationKind[TypeReferenceSerializationKind["Unknown"] = 0] = "Unknown";
// should be emitted using a safe fallback.
TypeReferenceSerializationKind[TypeReferenceSerializationKind["TypeWithConstructSignatureAndValue"] = 1] = "TypeWithConstructSignatureAndValue";
// function that can be reached at runtime (e.g. a `class`
// declaration or a `var` declaration for the static side
// of a type, such as the global `Promise` type in lib.d.ts).
TypeReferenceSerializationKind[TypeReferenceSerializationKind["VoidType"] = 2] = "VoidType";
TypeReferenceSerializationKind[TypeReferenceSerializationKind["NumberLikeType"] = 3] = "NumberLikeType";
TypeReferenceSerializationKind[TypeReferenceSerializationKind["StringLikeType"] = 4] = "StringLikeType";
TypeReferenceSerializationKind[TypeReferenceSerializationKind["BooleanType"] = 5] = "BooleanType";
TypeReferenceSerializationKind[TypeReferenceSerializationKind["ArrayLikeType"] = 6] = "ArrayLikeType";
TypeReferenceSerializationKind[TypeReferenceSerializationKind["ESSymbolType"] = 7] = "ESSymbolType";
TypeReferenceSerializationKind[TypeReferenceSerializationKind["TypeWithCallSignature"] = 8] = "TypeWithCallSignature";
// with call signatures.
TypeReferenceSerializationKind[TypeReferenceSerializationKind["ObjectType"] = 9] = "ObjectType";
})(ts.TypeReferenceSerializationKind || (ts.TypeReferenceSerializationKind = {}));
var TypeReferenceSerializationKind = ts.TypeReferenceSerializationKind;
(function (SymbolFlags) {
SymbolFlags[SymbolFlags["None"] = 0] = "None";
SymbolFlags[SymbolFlags["FunctionScopedVariable"] = 1] = "FunctionScopedVariable";
SymbolFlags[SymbolFlags["BlockScopedVariable"] = 2] = "BlockScopedVariable";
SymbolFlags[SymbolFlags["Property"] = 4] = "Property";
SymbolFlags[SymbolFlags["EnumMember"] = 8] = "EnumMember";
SymbolFlags[SymbolFlags["Function"] = 16] = "Function";
SymbolFlags[SymbolFlags["Class"] = 32] = "Class";
SymbolFlags[SymbolFlags["Interface"] = 64] = "Interface";
SymbolFlags[SymbolFlags["ConstEnum"] = 128] = "ConstEnum";
SymbolFlags[SymbolFlags["RegularEnum"] = 256] = "RegularEnum";
SymbolFlags[SymbolFlags["ValueModule"] = 512] = "ValueModule";
SymbolFlags[SymbolFlags["NamespaceModule"] = 1024] = "NamespaceModule";
SymbolFlags[SymbolFlags["TypeLiteral"] = 2048] = "TypeLiteral";
SymbolFlags[SymbolFlags["ObjectLiteral"] = 4096] = "ObjectLiteral";
SymbolFlags[SymbolFlags["Method"] = 8192] = "Method";
SymbolFlags[SymbolFlags["Constructor"] = 16384] = "Constructor";
SymbolFlags[SymbolFlags["GetAccessor"] = 32768] = "GetAccessor";
SymbolFlags[SymbolFlags["SetAccessor"] = 65536] = "SetAccessor";
SymbolFlags[SymbolFlags["Signature"] = 131072] = "Signature";
SymbolFlags[SymbolFlags["TypeParameter"] = 262144] = "TypeParameter";
SymbolFlags[SymbolFlags["TypeAlias"] = 524288] = "TypeAlias";
SymbolFlags[SymbolFlags["ExportValue"] = 1048576] = "ExportValue";
SymbolFlags[SymbolFlags["ExportType"] = 2097152] = "ExportType";
SymbolFlags[SymbolFlags["ExportNamespace"] = 4194304] = "ExportNamespace";
SymbolFlags[SymbolFlags["Alias"] = 8388608] = "Alias";
SymbolFlags[SymbolFlags["Instantiated"] = 16777216] = "Instantiated";
SymbolFlags[SymbolFlags["Merged"] = 33554432] = "Merged";
SymbolFlags[SymbolFlags["Transient"] = 67108864] = "Transient";
SymbolFlags[SymbolFlags["Prototype"] = 134217728] = "Prototype";
SymbolFlags[SymbolFlags["SyntheticProperty"] = 268435456] = "SyntheticProperty";
SymbolFlags[SymbolFlags["Optional"] = 536870912] = "Optional";
SymbolFlags[SymbolFlags["ExportStar"] = 1073741824] = "ExportStar";
SymbolFlags[SymbolFlags["Enum"] = 384] = "Enum";
SymbolFlags[SymbolFlags["Variable"] = 3] = "Variable";
SymbolFlags[SymbolFlags["Value"] = 107455] = "Value";
SymbolFlags[SymbolFlags["Type"] = 793064] = "Type";
SymbolFlags[SymbolFlags["Namespace"] = 1920] = "Namespace";
SymbolFlags[SymbolFlags["Module"] = 1536] = "Module";
SymbolFlags[SymbolFlags["Accessor"] = 98304] = "Accessor";
// Variables can be redeclared, but can not redeclare a block-scoped declaration with the
// same name, or any other value that is not a variable, e.g. ValueModule or Class
SymbolFlags[SymbolFlags["FunctionScopedVariableExcludes"] = 107454] = "FunctionScopedVariableExcludes";
// Block-scoped declarations are not allowed to be re-declared
// they can not merge with anything in the value space
SymbolFlags[SymbolFlags["BlockScopedVariableExcludes"] = 107455] = "BlockScopedVariableExcludes";
SymbolFlags[SymbolFlags["ParameterExcludes"] = 107455] = "ParameterExcludes";
SymbolFlags[SymbolFlags["PropertyExcludes"] = 0] = "PropertyExcludes";
SymbolFlags[SymbolFlags["EnumMemberExcludes"] = 900095] = "EnumMemberExcludes";
SymbolFlags[SymbolFlags["FunctionExcludes"] = 106927] = "FunctionExcludes";
SymbolFlags[SymbolFlags["ClassExcludes"] = 899519] = "ClassExcludes";
SymbolFlags[SymbolFlags["InterfaceExcludes"] = 792968] = "InterfaceExcludes";
SymbolFlags[SymbolFlags["RegularEnumExcludes"] = 899327] = "RegularEnumExcludes";
SymbolFlags[SymbolFlags["ConstEnumExcludes"] = 899967] = "ConstEnumExcludes";
SymbolFlags[SymbolFlags["ValueModuleExcludes"] = 106639] = "ValueModuleExcludes";
SymbolFlags[SymbolFlags["NamespaceModuleExcludes"] = 0] = "NamespaceModuleExcludes";
SymbolFlags[SymbolFlags["MethodExcludes"] = 99263] = "MethodExcludes";
SymbolFlags[SymbolFlags["GetAccessorExcludes"] = 41919] = "GetAccessorExcludes";
SymbolFlags[SymbolFlags["SetAccessorExcludes"] = 74687] = "SetAccessorExcludes";
SymbolFlags[SymbolFlags["TypeParameterExcludes"] = 530920] = "TypeParameterExcludes";
SymbolFlags[SymbolFlags["TypeAliasExcludes"] = 793064] = "TypeAliasExcludes";
SymbolFlags[SymbolFlags["AliasExcludes"] = 8388608] = "AliasExcludes";
SymbolFlags[SymbolFlags["ModuleMember"] = 8914931] = "ModuleMember";
SymbolFlags[SymbolFlags["ExportHasLocal"] = 944] = "ExportHasLocal";
SymbolFlags[SymbolFlags["HasExports"] = 1952] = "HasExports";
SymbolFlags[SymbolFlags["HasMembers"] = 6240] = "HasMembers";
SymbolFlags[SymbolFlags["BlockScoped"] = 418] = "BlockScoped";
SymbolFlags[SymbolFlags["PropertyOrAccessor"] = 98308] = "PropertyOrAccessor";
SymbolFlags[SymbolFlags["Export"] = 7340032] = "Export";
SymbolFlags[SymbolFlags["ClassMember"] = 106500] = "ClassMember";
/* @internal */
// The set of things we consider semantically classifiable. Used to speed up the LS during
// classification.
SymbolFlags[SymbolFlags["Classifiable"] = 788448] = "Classifiable";
})(ts.SymbolFlags || (ts.SymbolFlags = {}));
var SymbolFlags = ts.SymbolFlags;
/* @internal */
(function (NodeCheckFlags) {
NodeCheckFlags[NodeCheckFlags["TypeChecked"] = 1] = "TypeChecked";
NodeCheckFlags[NodeCheckFlags["LexicalThis"] = 2] = "LexicalThis";
NodeCheckFlags[NodeCheckFlags["CaptureThis"] = 4] = "CaptureThis";
NodeCheckFlags[NodeCheckFlags["SuperInstance"] = 256] = "SuperInstance";
NodeCheckFlags[NodeCheckFlags["SuperStatic"] = 512] = "SuperStatic";
NodeCheckFlags[NodeCheckFlags["ContextChecked"] = 1024] = "ContextChecked";
NodeCheckFlags[NodeCheckFlags["AsyncMethodWithSuper"] = 2048] = "AsyncMethodWithSuper";
NodeCheckFlags[NodeCheckFlags["AsyncMethodWithSuperBinding"] = 4096] = "AsyncMethodWithSuperBinding";
NodeCheckFlags[NodeCheckFlags["CaptureArguments"] = 8192] = "CaptureArguments";
NodeCheckFlags[NodeCheckFlags["EnumValuesComputed"] = 16384] = "EnumValuesComputed";
NodeCheckFlags[NodeCheckFlags["LexicalModuleMergesWithClass"] = 32768] = "LexicalModuleMergesWithClass";
NodeCheckFlags[NodeCheckFlags["LoopWithCapturedBlockScopedBinding"] = 65536] = "LoopWithCapturedBlockScopedBinding";
NodeCheckFlags[NodeCheckFlags["CapturedBlockScopedBinding"] = 131072] = "CapturedBlockScopedBinding";
NodeCheckFlags[NodeCheckFlags["BlockScopedBindingInLoop"] = 262144] = "BlockScopedBindingInLoop";
NodeCheckFlags[NodeCheckFlags["ClassWithBodyScopedClassBinding"] = 524288] = "ClassWithBodyScopedClassBinding";
NodeCheckFlags[NodeCheckFlags["BodyScopedClassBinding"] = 1048576] = "BodyScopedClassBinding";
NodeCheckFlags[NodeCheckFlags["NeedsLoopOutParameter"] = 2097152] = "NeedsLoopOutParameter";
NodeCheckFlags[NodeCheckFlags["AssignmentsMarked"] = 4194304] = "AssignmentsMarked";
})(ts.NodeCheckFlags || (ts.NodeCheckFlags = {}));
var NodeCheckFlags = ts.NodeCheckFlags;
(function (TypeFlags) {
TypeFlags[TypeFlags["Any"] = 1] = "Any";
TypeFlags[TypeFlags["String"] = 2] = "String";
TypeFlags[TypeFlags["Number"] = 4] = "Number";
TypeFlags[TypeFlags["Boolean"] = 8] = "Boolean";
TypeFlags[TypeFlags["Enum"] = 16] = "Enum";
TypeFlags[TypeFlags["StringLiteral"] = 32] = "StringLiteral";
TypeFlags[TypeFlags["NumberLiteral"] = 64] = "NumberLiteral";
TypeFlags[TypeFlags["BooleanLiteral"] = 128] = "BooleanLiteral";
TypeFlags[TypeFlags["EnumLiteral"] = 256] = "EnumLiteral";
TypeFlags[TypeFlags["ESSymbol"] = 512] = "ESSymbol";
TypeFlags[TypeFlags["Void"] = 1024] = "Void";
TypeFlags[TypeFlags["Undefined"] = 2048] = "Undefined";
TypeFlags[TypeFlags["Null"] = 4096] = "Null";
TypeFlags[TypeFlags["Never"] = 8192] = "Never";
TypeFlags[TypeFlags["TypeParameter"] = 16384] = "TypeParameter";
TypeFlags[TypeFlags["Class"] = 32768] = "Class";
TypeFlags[TypeFlags["Interface"] = 65536] = "Interface";
TypeFlags[TypeFlags["Reference"] = 131072] = "Reference";
TypeFlags[TypeFlags["Tuple"] = 262144] = "Tuple";
TypeFlags[TypeFlags["Union"] = 524288] = "Union";
TypeFlags[TypeFlags["Intersection"] = 1048576] = "Intersection";
TypeFlags[TypeFlags["Anonymous"] = 2097152] = "Anonymous";
TypeFlags[TypeFlags["Instantiated"] = 4194304] = "Instantiated";
/* @internal */
TypeFlags[TypeFlags["ObjectLiteral"] = 8388608] = "ObjectLiteral";
/* @internal */
TypeFlags[TypeFlags["FreshObjectLiteral"] = 16777216] = "FreshObjectLiteral";
/* @internal */
TypeFlags[TypeFlags["ContainsWideningType"] = 33554432] = "ContainsWideningType";
/* @internal */
TypeFlags[TypeFlags["ContainsObjectLiteral"] = 67108864] = "ContainsObjectLiteral";
/* @internal */
TypeFlags[TypeFlags["ContainsAnyFunctionType"] = 134217728] = "ContainsAnyFunctionType";
TypeFlags[TypeFlags["ThisType"] = 268435456] = "ThisType";
TypeFlags[TypeFlags["ObjectLiteralPatternWithComputedProperties"] = 536870912] = "ObjectLiteralPatternWithComputedProperties";
/* @internal */
TypeFlags[TypeFlags["Nullable"] = 6144] = "Nullable";
TypeFlags[TypeFlags["Literal"] = 480] = "Literal";
/* @internal */
TypeFlags[TypeFlags["DefinitelyFalsy"] = 7392] = "DefinitelyFalsy";
TypeFlags[TypeFlags["PossiblyFalsy"] = 7406] = "PossiblyFalsy";
/* @internal */
TypeFlags[TypeFlags["Intrinsic"] = 16015] = "Intrinsic";
/* @internal */
TypeFlags[TypeFlags["Primitive"] = 8190] = "Primitive";
TypeFlags[TypeFlags["StringLike"] = 34] = "StringLike";
TypeFlags[TypeFlags["NumberLike"] = 340] = "NumberLike";
TypeFlags[TypeFlags["BooleanLike"] = 136] = "BooleanLike";
TypeFlags[TypeFlags["EnumLike"] = 272] = "EnumLike";
TypeFlags[TypeFlags["ObjectType"] = 2588672] = "ObjectType";
TypeFlags[TypeFlags["UnionOrIntersection"] = 1572864] = "UnionOrIntersection";
TypeFlags[TypeFlags["StructuredType"] = 4161536] = "StructuredType";
TypeFlags[TypeFlags["StructuredOrTypeParameter"] = 4177920] = "StructuredOrTypeParameter";
// 'Narrowable' types are types where narrowing actually narrows.
// This *should* be every type other than null, undefined, void, and never
TypeFlags[TypeFlags["Narrowable"] = 4178943] = "Narrowable";
TypeFlags[TypeFlags["NotUnionOrUnit"] = 2589191] = "NotUnionOrUnit";
/* @internal */
TypeFlags[TypeFlags["RequiresWidening"] = 100663296] = "RequiresWidening";
/* @internal */
TypeFlags[TypeFlags["PropagatingFlags"] = 234881024] = "PropagatingFlags";
})(ts.TypeFlags || (ts.TypeFlags = {}));
var TypeFlags = ts.TypeFlags;
(function (SignatureKind) {
SignatureKind[SignatureKind["Call"] = 0] = "Call";
SignatureKind[SignatureKind["Construct"] = 1] = "Construct";
})(ts.SignatureKind || (ts.SignatureKind = {}));
var SignatureKind = ts.SignatureKind;
(function (IndexKind) {
IndexKind[IndexKind["String"] = 0] = "String";
IndexKind[IndexKind["Number"] = 1] = "Number";
})(ts.IndexKind || (ts.IndexKind = {}));
var IndexKind = ts.IndexKind;
/* @internal */
(function (SpecialPropertyAssignmentKind) {
SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["None"] = 0] = "None";
/// exports.name = expr
SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["ExportsProperty"] = 1] = "ExportsProperty";
/// module.exports = expr
SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["ModuleExports"] = 2] = "ModuleExports";
/// className.prototype.name = expr
SpecialPropertyAssignmentKind[SpecialPropertyAssignmentKind["PrototypeProperty"] = 3] = "PrototypeProperty";