pxt-core
Version:
Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors
705 lines (701 loc) • 8.71 MB
JavaScript
"use strict";
// make sure TypeScript doesn't overwrite our module.exports
global.savedModuleExports = module.exports;
module.exports = null;
/*! *****************************************************************************
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.
***************************************************************************** */
"use strict";
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
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
var SyntaxKind;
(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["JsxText"] = 10] = "JsxText";
SyntaxKind[SyntaxKind["JsxTextAllWhiteSpaces"] = 11] = "JsxTextAllWhiteSpaces";
SyntaxKind[SyntaxKind["RegularExpressionLiteral"] = 12] = "RegularExpressionLiteral";
SyntaxKind[SyntaxKind["NoSubstitutionTemplateLiteral"] = 13] = "NoSubstitutionTemplateLiteral";
// Pseudo-literals
SyntaxKind[SyntaxKind["TemplateHead"] = 14] = "TemplateHead";
SyntaxKind[SyntaxKind["TemplateMiddle"] = 15] = "TemplateMiddle";
SyntaxKind[SyntaxKind["TemplateTail"] = 16] = "TemplateTail";
// Punctuation
SyntaxKind[SyntaxKind["OpenBraceToken"] = 17] = "OpenBraceToken";
SyntaxKind[SyntaxKind["CloseBraceToken"] = 18] = "CloseBraceToken";
SyntaxKind[SyntaxKind["OpenParenToken"] = 19] = "OpenParenToken";
SyntaxKind[SyntaxKind["CloseParenToken"] = 20] = "CloseParenToken";
SyntaxKind[SyntaxKind["OpenBracketToken"] = 21] = "OpenBracketToken";
SyntaxKind[SyntaxKind["CloseBracketToken"] = 22] = "CloseBracketToken";
SyntaxKind[SyntaxKind["DotToken"] = 23] = "DotToken";
SyntaxKind[SyntaxKind["DotDotDotToken"] = 24] = "DotDotDotToken";
SyntaxKind[SyntaxKind["SemicolonToken"] = 25] = "SemicolonToken";
SyntaxKind[SyntaxKind["CommaToken"] = 26] = "CommaToken";
SyntaxKind[SyntaxKind["LessThanToken"] = 27] = "LessThanToken";
SyntaxKind[SyntaxKind["LessThanSlashToken"] = 28] = "LessThanSlashToken";
SyntaxKind[SyntaxKind["GreaterThanToken"] = 29] = "GreaterThanToken";
SyntaxKind[SyntaxKind["LessThanEqualsToken"] = 30] = "LessThanEqualsToken";
SyntaxKind[SyntaxKind["GreaterThanEqualsToken"] = 31] = "GreaterThanEqualsToken";
SyntaxKind[SyntaxKind["EqualsEqualsToken"] = 32] = "EqualsEqualsToken";
SyntaxKind[SyntaxKind["ExclamationEqualsToken"] = 33] = "ExclamationEqualsToken";
SyntaxKind[SyntaxKind["EqualsEqualsEqualsToken"] = 34] = "EqualsEqualsEqualsToken";
SyntaxKind[SyntaxKind["ExclamationEqualsEqualsToken"] = 35] = "ExclamationEqualsEqualsToken";
SyntaxKind[SyntaxKind["EqualsGreaterThanToken"] = 36] = "EqualsGreaterThanToken";
SyntaxKind[SyntaxKind["PlusToken"] = 37] = "PlusToken";
SyntaxKind[SyntaxKind["MinusToken"] = 38] = "MinusToken";
SyntaxKind[SyntaxKind["AsteriskToken"] = 39] = "AsteriskToken";
SyntaxKind[SyntaxKind["AsteriskAsteriskToken"] = 40] = "AsteriskAsteriskToken";
SyntaxKind[SyntaxKind["SlashToken"] = 41] = "SlashToken";
SyntaxKind[SyntaxKind["PercentToken"] = 42] = "PercentToken";
SyntaxKind[SyntaxKind["PlusPlusToken"] = 43] = "PlusPlusToken";
SyntaxKind[SyntaxKind["MinusMinusToken"] = 44] = "MinusMinusToken";
SyntaxKind[SyntaxKind["LessThanLessThanToken"] = 45] = "LessThanLessThanToken";
SyntaxKind[SyntaxKind["GreaterThanGreaterThanToken"] = 46] = "GreaterThanGreaterThanToken";
SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanToken"] = 47] = "GreaterThanGreaterThanGreaterThanToken";
SyntaxKind[SyntaxKind["AmpersandToken"] = 48] = "AmpersandToken";
SyntaxKind[SyntaxKind["BarToken"] = 49] = "BarToken";
SyntaxKind[SyntaxKind["CaretToken"] = 50] = "CaretToken";
SyntaxKind[SyntaxKind["ExclamationToken"] = 51] = "ExclamationToken";
SyntaxKind[SyntaxKind["TildeToken"] = 52] = "TildeToken";
SyntaxKind[SyntaxKind["AmpersandAmpersandToken"] = 53] = "AmpersandAmpersandToken";
SyntaxKind[SyntaxKind["BarBarToken"] = 54] = "BarBarToken";
SyntaxKind[SyntaxKind["QuestionToken"] = 55] = "QuestionToken";
SyntaxKind[SyntaxKind["ColonToken"] = 56] = "ColonToken";
SyntaxKind[SyntaxKind["AtToken"] = 57] = "AtToken";
// Assignments
SyntaxKind[SyntaxKind["EqualsToken"] = 58] = "EqualsToken";
SyntaxKind[SyntaxKind["PlusEqualsToken"] = 59] = "PlusEqualsToken";
SyntaxKind[SyntaxKind["MinusEqualsToken"] = 60] = "MinusEqualsToken";
SyntaxKind[SyntaxKind["AsteriskEqualsToken"] = 61] = "AsteriskEqualsToken";
SyntaxKind[SyntaxKind["AsteriskAsteriskEqualsToken"] = 62] = "AsteriskAsteriskEqualsToken";
SyntaxKind[SyntaxKind["SlashEqualsToken"] = 63] = "SlashEqualsToken";
SyntaxKind[SyntaxKind["PercentEqualsToken"] = 64] = "PercentEqualsToken";
SyntaxKind[SyntaxKind["LessThanLessThanEqualsToken"] = 65] = "LessThanLessThanEqualsToken";
SyntaxKind[SyntaxKind["GreaterThanGreaterThanEqualsToken"] = 66] = "GreaterThanGreaterThanEqualsToken";
SyntaxKind[SyntaxKind["GreaterThanGreaterThanGreaterThanEqualsToken"] = 67] = "GreaterThanGreaterThanGreaterThanEqualsToken";
SyntaxKind[SyntaxKind["AmpersandEqualsToken"] = 68] = "AmpersandEqualsToken";
SyntaxKind[SyntaxKind["BarEqualsToken"] = 69] = "BarEqualsToken";
SyntaxKind[SyntaxKind["CaretEqualsToken"] = 70] = "CaretEqualsToken";
// Identifiers
SyntaxKind[SyntaxKind["Identifier"] = 71] = "Identifier";
// Reserved words
SyntaxKind[SyntaxKind["BreakKeyword"] = 72] = "BreakKeyword";
SyntaxKind[SyntaxKind["CaseKeyword"] = 73] = "CaseKeyword";
SyntaxKind[SyntaxKind["CatchKeyword"] = 74] = "CatchKeyword";
SyntaxKind[SyntaxKind["ClassKeyword"] = 75] = "ClassKeyword";
SyntaxKind[SyntaxKind["ConstKeyword"] = 76] = "ConstKeyword";
SyntaxKind[SyntaxKind["ContinueKeyword"] = 77] = "ContinueKeyword";
SyntaxKind[SyntaxKind["DebuggerKeyword"] = 78] = "DebuggerKeyword";
SyntaxKind[SyntaxKind["DefaultKeyword"] = 79] = "DefaultKeyword";
SyntaxKind[SyntaxKind["DeleteKeyword"] = 80] = "DeleteKeyword";
SyntaxKind[SyntaxKind["DoKeyword"] = 81] = "DoKeyword";
SyntaxKind[SyntaxKind["ElseKeyword"] = 82] = "ElseKeyword";
SyntaxKind[SyntaxKind["EnumKeyword"] = 83] = "EnumKeyword";
SyntaxKind[SyntaxKind["ExportKeyword"] = 84] = "ExportKeyword";
SyntaxKind[SyntaxKind["ExtendsKeyword"] = 85] = "ExtendsKeyword";
SyntaxKind[SyntaxKind["FalseKeyword"] = 86] = "FalseKeyword";
SyntaxKind[SyntaxKind["FinallyKeyword"] = 87] = "FinallyKeyword";
SyntaxKind[SyntaxKind["ForKeyword"] = 88] = "ForKeyword";
SyntaxKind[SyntaxKind["FunctionKeyword"] = 89] = "FunctionKeyword";
SyntaxKind[SyntaxKind["IfKeyword"] = 90] = "IfKeyword";
SyntaxKind[SyntaxKind["ImportKeyword"] = 91] = "ImportKeyword";
SyntaxKind[SyntaxKind["InKeyword"] = 92] = "InKeyword";
SyntaxKind[SyntaxKind["InstanceOfKeyword"] = 93] = "InstanceOfKeyword";
SyntaxKind[SyntaxKind["NewKeyword"] = 94] = "NewKeyword";
SyntaxKind[SyntaxKind["NullKeyword"] = 95] = "NullKeyword";
SyntaxKind[SyntaxKind["ReturnKeyword"] = 96] = "ReturnKeyword";
SyntaxKind[SyntaxKind["SuperKeyword"] = 97] = "SuperKeyword";
SyntaxKind[SyntaxKind["SwitchKeyword"] = 98] = "SwitchKeyword";
SyntaxKind[SyntaxKind["ThisKeyword"] = 99] = "ThisKeyword";
SyntaxKind[SyntaxKind["ThrowKeyword"] = 100] = "ThrowKeyword";
SyntaxKind[SyntaxKind["TrueKeyword"] = 101] = "TrueKeyword";
SyntaxKind[SyntaxKind["TryKeyword"] = 102] = "TryKeyword";
SyntaxKind[SyntaxKind["TypeOfKeyword"] = 103] = "TypeOfKeyword";
SyntaxKind[SyntaxKind["VarKeyword"] = 104] = "VarKeyword";
SyntaxKind[SyntaxKind["VoidKeyword"] = 105] = "VoidKeyword";
SyntaxKind[SyntaxKind["WhileKeyword"] = 106] = "WhileKeyword";
SyntaxKind[SyntaxKind["WithKeyword"] = 107] = "WithKeyword";
// Strict mode reserved words
SyntaxKind[SyntaxKind["ImplementsKeyword"] = 108] = "ImplementsKeyword";
SyntaxKind[SyntaxKind["InterfaceKeyword"] = 109] = "InterfaceKeyword";
SyntaxKind[SyntaxKind["LetKeyword"] = 110] = "LetKeyword";
SyntaxKind[SyntaxKind["PackageKeyword"] = 111] = "PackageKeyword";
SyntaxKind[SyntaxKind["PrivateKeyword"] = 112] = "PrivateKeyword";
SyntaxKind[SyntaxKind["ProtectedKeyword"] = 113] = "ProtectedKeyword";
SyntaxKind[SyntaxKind["PublicKeyword"] = 114] = "PublicKeyword";
SyntaxKind[SyntaxKind["StaticKeyword"] = 115] = "StaticKeyword";
SyntaxKind[SyntaxKind["YieldKeyword"] = 116] = "YieldKeyword";
// Contextual keywords
SyntaxKind[SyntaxKind["AbstractKeyword"] = 117] = "AbstractKeyword";
SyntaxKind[SyntaxKind["AsKeyword"] = 118] = "AsKeyword";
SyntaxKind[SyntaxKind["AnyKeyword"] = 119] = "AnyKeyword";
SyntaxKind[SyntaxKind["AsyncKeyword"] = 120] = "AsyncKeyword";
SyntaxKind[SyntaxKind["AwaitKeyword"] = 121] = "AwaitKeyword";
SyntaxKind[SyntaxKind["BooleanKeyword"] = 122] = "BooleanKeyword";
SyntaxKind[SyntaxKind["ConstructorKeyword"] = 123] = "ConstructorKeyword";
SyntaxKind[SyntaxKind["DeclareKeyword"] = 124] = "DeclareKeyword";
SyntaxKind[SyntaxKind["GetKeyword"] = 125] = "GetKeyword";
SyntaxKind[SyntaxKind["IsKeyword"] = 126] = "IsKeyword";
SyntaxKind[SyntaxKind["KeyOfKeyword"] = 127] = "KeyOfKeyword";
SyntaxKind[SyntaxKind["ModuleKeyword"] = 128] = "ModuleKeyword";
SyntaxKind[SyntaxKind["NamespaceKeyword"] = 129] = "NamespaceKeyword";
SyntaxKind[SyntaxKind["NeverKeyword"] = 130] = "NeverKeyword";
SyntaxKind[SyntaxKind["ReadonlyKeyword"] = 131] = "ReadonlyKeyword";
SyntaxKind[SyntaxKind["RequireKeyword"] = 132] = "RequireKeyword";
SyntaxKind[SyntaxKind["NumberKeyword"] = 133] = "NumberKeyword";
SyntaxKind[SyntaxKind["ObjectKeyword"] = 134] = "ObjectKeyword";
SyntaxKind[SyntaxKind["SetKeyword"] = 135] = "SetKeyword";
SyntaxKind[SyntaxKind["StringKeyword"] = 136] = "StringKeyword";
SyntaxKind[SyntaxKind["SymbolKeyword"] = 137] = "SymbolKeyword";
SyntaxKind[SyntaxKind["TypeKeyword"] = 138] = "TypeKeyword";
SyntaxKind[SyntaxKind["UndefinedKeyword"] = 139] = "UndefinedKeyword";
SyntaxKind[SyntaxKind["FromKeyword"] = 140] = "FromKeyword";
SyntaxKind[SyntaxKind["GlobalKeyword"] = 141] = "GlobalKeyword";
SyntaxKind[SyntaxKind["OfKeyword"] = 142] = "OfKeyword";
// Parse tree nodes
// Names
SyntaxKind[SyntaxKind["QualifiedName"] = 143] = "QualifiedName";
SyntaxKind[SyntaxKind["ComputedPropertyName"] = 144] = "ComputedPropertyName";
// Signature elements
SyntaxKind[SyntaxKind["TypeParameter"] = 145] = "TypeParameter";
SyntaxKind[SyntaxKind["Parameter"] = 146] = "Parameter";
SyntaxKind[SyntaxKind["Decorator"] = 147] = "Decorator";
// TypeMember
SyntaxKind[SyntaxKind["PropertySignature"] = 148] = "PropertySignature";
SyntaxKind[SyntaxKind["PropertyDeclaration"] = 149] = "PropertyDeclaration";
SyntaxKind[SyntaxKind["MethodSignature"] = 150] = "MethodSignature";
SyntaxKind[SyntaxKind["MethodDeclaration"] = 151] = "MethodDeclaration";
SyntaxKind[SyntaxKind["Constructor"] = 152] = "Constructor";
SyntaxKind[SyntaxKind["GetAccessor"] = 153] = "GetAccessor";
SyntaxKind[SyntaxKind["SetAccessor"] = 154] = "SetAccessor";
SyntaxKind[SyntaxKind["CallSignature"] = 155] = "CallSignature";
SyntaxKind[SyntaxKind["ConstructSignature"] = 156] = "ConstructSignature";
SyntaxKind[SyntaxKind["IndexSignature"] = 157] = "IndexSignature";
// Type
SyntaxKind[SyntaxKind["TypePredicate"] = 158] = "TypePredicate";
SyntaxKind[SyntaxKind["TypeReference"] = 159] = "TypeReference";
SyntaxKind[SyntaxKind["FunctionType"] = 160] = "FunctionType";
SyntaxKind[SyntaxKind["ConstructorType"] = 161] = "ConstructorType";
SyntaxKind[SyntaxKind["TypeQuery"] = 162] = "TypeQuery";
SyntaxKind[SyntaxKind["TypeLiteral"] = 163] = "TypeLiteral";
SyntaxKind[SyntaxKind["ArrayType"] = 164] = "ArrayType";
SyntaxKind[SyntaxKind["TupleType"] = 165] = "TupleType";
SyntaxKind[SyntaxKind["UnionType"] = 166] = "UnionType";
SyntaxKind[SyntaxKind["IntersectionType"] = 167] = "IntersectionType";
SyntaxKind[SyntaxKind["ParenthesizedType"] = 168] = "ParenthesizedType";
SyntaxKind[SyntaxKind["ThisType"] = 169] = "ThisType";
SyntaxKind[SyntaxKind["TypeOperator"] = 170] = "TypeOperator";
SyntaxKind[SyntaxKind["IndexedAccessType"] = 171] = "IndexedAccessType";
SyntaxKind[SyntaxKind["MappedType"] = 172] = "MappedType";
SyntaxKind[SyntaxKind["LiteralType"] = 173] = "LiteralType";
// Binding patterns
SyntaxKind[SyntaxKind["ObjectBindingPattern"] = 174] = "ObjectBindingPattern";
SyntaxKind[SyntaxKind["ArrayBindingPattern"] = 175] = "ArrayBindingPattern";
SyntaxKind[SyntaxKind["BindingElement"] = 176] = "BindingElement";
// Expression
SyntaxKind[SyntaxKind["ArrayLiteralExpression"] = 177] = "ArrayLiteralExpression";
SyntaxKind[SyntaxKind["ObjectLiteralExpression"] = 178] = "ObjectLiteralExpression";
SyntaxKind[SyntaxKind["PropertyAccessExpression"] = 179] = "PropertyAccessExpression";
SyntaxKind[SyntaxKind["ElementAccessExpression"] = 180] = "ElementAccessExpression";
SyntaxKind[SyntaxKind["CallExpression"] = 181] = "CallExpression";
SyntaxKind[SyntaxKind["NewExpression"] = 182] = "NewExpression";
SyntaxKind[SyntaxKind["TaggedTemplateExpression"] = 183] = "TaggedTemplateExpression";
SyntaxKind[SyntaxKind["TypeAssertionExpression"] = 184] = "TypeAssertionExpression";
SyntaxKind[SyntaxKind["ParenthesizedExpression"] = 185] = "ParenthesizedExpression";
SyntaxKind[SyntaxKind["FunctionExpression"] = 186] = "FunctionExpression";
SyntaxKind[SyntaxKind["ArrowFunction"] = 187] = "ArrowFunction";
SyntaxKind[SyntaxKind["DeleteExpression"] = 188] = "DeleteExpression";
SyntaxKind[SyntaxKind["TypeOfExpression"] = 189] = "TypeOfExpression";
SyntaxKind[SyntaxKind["VoidExpression"] = 190] = "VoidExpression";
SyntaxKind[SyntaxKind["AwaitExpression"] = 191] = "AwaitExpression";
SyntaxKind[SyntaxKind["PrefixUnaryExpression"] = 192] = "PrefixUnaryExpression";
SyntaxKind[SyntaxKind["PostfixUnaryExpression"] = 193] = "PostfixUnaryExpression";
SyntaxKind[SyntaxKind["BinaryExpression"] = 194] = "BinaryExpression";
SyntaxKind[SyntaxKind["ConditionalExpression"] = 195] = "ConditionalExpression";
SyntaxKind[SyntaxKind["TemplateExpression"] = 196] = "TemplateExpression";
SyntaxKind[SyntaxKind["YieldExpression"] = 197] = "YieldExpression";
SyntaxKind[SyntaxKind["SpreadElement"] = 198] = "SpreadElement";
SyntaxKind[SyntaxKind["ClassExpression"] = 199] = "ClassExpression";
SyntaxKind[SyntaxKind["OmittedExpression"] = 200] = "OmittedExpression";
SyntaxKind[SyntaxKind["ExpressionWithTypeArguments"] = 201] = "ExpressionWithTypeArguments";
SyntaxKind[SyntaxKind["AsExpression"] = 202] = "AsExpression";
SyntaxKind[SyntaxKind["NonNullExpression"] = 203] = "NonNullExpression";
SyntaxKind[SyntaxKind["MetaProperty"] = 204] = "MetaProperty";
// Misc
SyntaxKind[SyntaxKind["TemplateSpan"] = 205] = "TemplateSpan";
SyntaxKind[SyntaxKind["SemicolonClassElement"] = 206] = "SemicolonClassElement";
// Element
SyntaxKind[SyntaxKind["Block"] = 207] = "Block";
SyntaxKind[SyntaxKind["VariableStatement"] = 208] = "VariableStatement";
SyntaxKind[SyntaxKind["EmptyStatement"] = 209] = "EmptyStatement";
SyntaxKind[SyntaxKind["ExpressionStatement"] = 210] = "ExpressionStatement";
SyntaxKind[SyntaxKind["IfStatement"] = 211] = "IfStatement";
SyntaxKind[SyntaxKind["DoStatement"] = 212] = "DoStatement";
SyntaxKind[SyntaxKind["WhileStatement"] = 213] = "WhileStatement";
SyntaxKind[SyntaxKind["ForStatement"] = 214] = "ForStatement";
SyntaxKind[SyntaxKind["ForInStatement"] = 215] = "ForInStatement";
SyntaxKind[SyntaxKind["ForOfStatement"] = 216] = "ForOfStatement";
SyntaxKind[SyntaxKind["ContinueStatement"] = 217] = "ContinueStatement";
SyntaxKind[SyntaxKind["BreakStatement"] = 218] = "BreakStatement";
SyntaxKind[SyntaxKind["ReturnStatement"] = 219] = "ReturnStatement";
SyntaxKind[SyntaxKind["WithStatement"] = 220] = "WithStatement";
SyntaxKind[SyntaxKind["SwitchStatement"] = 221] = "SwitchStatement";
SyntaxKind[SyntaxKind["LabeledStatement"] = 222] = "LabeledStatement";
SyntaxKind[SyntaxKind["ThrowStatement"] = 223] = "ThrowStatement";
SyntaxKind[SyntaxKind["TryStatement"] = 224] = "TryStatement";
SyntaxKind[SyntaxKind["DebuggerStatement"] = 225] = "DebuggerStatement";
SyntaxKind[SyntaxKind["VariableDeclaration"] = 226] = "VariableDeclaration";
SyntaxKind[SyntaxKind["VariableDeclarationList"] = 227] = "VariableDeclarationList";
SyntaxKind[SyntaxKind["FunctionDeclaration"] = 228] = "FunctionDeclaration";
SyntaxKind[SyntaxKind["ClassDeclaration"] = 229] = "ClassDeclaration";
SyntaxKind[SyntaxKind["InterfaceDeclaration"] = 230] = "InterfaceDeclaration";
SyntaxKind[SyntaxKind["TypeAliasDeclaration"] = 231] = "TypeAliasDeclaration";
SyntaxKind[SyntaxKind["EnumDeclaration"] = 232] = "EnumDeclaration";
SyntaxKind[SyntaxKind["ModuleDeclaration"] = 233] = "ModuleDeclaration";
SyntaxKind[SyntaxKind["ModuleBlock"] = 234] = "ModuleBlock";
SyntaxKind[SyntaxKind["CaseBlock"] = 235] = "CaseBlock";
SyntaxKind[SyntaxKind["NamespaceExportDeclaration"] = 236] = "NamespaceExportDeclaration";
SyntaxKind[SyntaxKind["ImportEqualsDeclaration"] = 237] = "ImportEqualsDeclaration";
SyntaxKind[SyntaxKind["ImportDeclaration"] = 238] = "ImportDeclaration";
SyntaxKind[SyntaxKind["ImportClause"] = 239] = "ImportClause";
SyntaxKind[SyntaxKind["NamespaceImport"] = 240] = "NamespaceImport";
SyntaxKind[SyntaxKind["NamedImports"] = 241] = "NamedImports";
SyntaxKind[SyntaxKind["ImportSpecifier"] = 242] = "ImportSpecifier";
SyntaxKind[SyntaxKind["ExportAssignment"] = 243] = "ExportAssignment";
SyntaxKind[SyntaxKind["ExportDeclaration"] = 244] = "ExportDeclaration";
SyntaxKind[SyntaxKind["NamedExports"] = 245] = "NamedExports";
SyntaxKind[SyntaxKind["ExportSpecifier"] = 246] = "ExportSpecifier";
SyntaxKind[SyntaxKind["MissingDeclaration"] = 247] = "MissingDeclaration";
// Module references
SyntaxKind[SyntaxKind["ExternalModuleReference"] = 248] = "ExternalModuleReference";
// JSX
SyntaxKind[SyntaxKind["JsxElement"] = 249] = "JsxElement";
SyntaxKind[SyntaxKind["JsxSelfClosingElement"] = 250] = "JsxSelfClosingElement";
SyntaxKind[SyntaxKind["JsxOpeningElement"] = 251] = "JsxOpeningElement";
SyntaxKind[SyntaxKind["JsxClosingElement"] = 252] = "JsxClosingElement";
SyntaxKind[SyntaxKind["JsxAttribute"] = 253] = "JsxAttribute";
SyntaxKind[SyntaxKind["JsxAttributes"] = 254] = "JsxAttributes";
SyntaxKind[SyntaxKind["JsxSpreadAttribute"] = 255] = "JsxSpreadAttribute";
SyntaxKind[SyntaxKind["JsxExpression"] = 256] = "JsxExpression";
// Clauses
SyntaxKind[SyntaxKind["CaseClause"] = 257] = "CaseClause";
SyntaxKind[SyntaxKind["DefaultClause"] = 258] = "DefaultClause";
SyntaxKind[SyntaxKind["HeritageClause"] = 259] = "HeritageClause";
SyntaxKind[SyntaxKind["CatchClause"] = 260] = "CatchClause";
// Property assignments
SyntaxKind[SyntaxKind["PropertyAssignment"] = 261] = "PropertyAssignment";
SyntaxKind[SyntaxKind["ShorthandPropertyAssignment"] = 262] = "ShorthandPropertyAssignment";
SyntaxKind[SyntaxKind["SpreadAssignment"] = 263] = "SpreadAssignment";
// Enum
SyntaxKind[SyntaxKind["EnumMember"] = 264] = "EnumMember";
// Top-level nodes
SyntaxKind[SyntaxKind["SourceFile"] = 265] = "SourceFile";
SyntaxKind[SyntaxKind["Bundle"] = 266] = "Bundle";
// JSDoc nodes
SyntaxKind[SyntaxKind["JSDocTypeExpression"] = 267] = "JSDocTypeExpression";
// The * type
SyntaxKind[SyntaxKind["JSDocAllType"] = 268] = "JSDocAllType";
// The ? type
SyntaxKind[SyntaxKind["JSDocUnknownType"] = 269] = "JSDocUnknownType";
SyntaxKind[SyntaxKind["JSDocNullableType"] = 270] = "JSDocNullableType";
SyntaxKind[SyntaxKind["JSDocNonNullableType"] = 271] = "JSDocNonNullableType";
SyntaxKind[SyntaxKind["JSDocOptionalType"] = 272] = "JSDocOptionalType";
SyntaxKind[SyntaxKind["JSDocFunctionType"] = 273] = "JSDocFunctionType";
SyntaxKind[SyntaxKind["JSDocVariadicType"] = 274] = "JSDocVariadicType";
SyntaxKind[SyntaxKind["JSDocComment"] = 275] = "JSDocComment";
SyntaxKind[SyntaxKind["JSDocTag"] = 276] = "JSDocTag";
SyntaxKind[SyntaxKind["JSDocAugmentsTag"] = 277] = "JSDocAugmentsTag";
SyntaxKind[SyntaxKind["JSDocClassTag"] = 278] = "JSDocClassTag";
SyntaxKind[SyntaxKind["JSDocParameterTag"] = 279] = "JSDocParameterTag";
SyntaxKind[SyntaxKind["JSDocReturnTag"] = 280] = "JSDocReturnTag";
SyntaxKind[SyntaxKind["JSDocTypeTag"] = 281] = "JSDocTypeTag";
SyntaxKind[SyntaxKind["JSDocTemplateTag"] = 282] = "JSDocTemplateTag";
SyntaxKind[SyntaxKind["JSDocTypedefTag"] = 283] = "JSDocTypedefTag";
SyntaxKind[SyntaxKind["JSDocPropertyTag"] = 284] = "JSDocPropertyTag";
SyntaxKind[SyntaxKind["JSDocTypeLiteral"] = 285] = "JSDocTypeLiteral";
// Synthesized list
SyntaxKind[SyntaxKind["SyntaxList"] = 286] = "SyntaxList";
// Transformation nodes
SyntaxKind[SyntaxKind["NotEmittedStatement"] = 287] = "NotEmittedStatement";
SyntaxKind[SyntaxKind["PartiallyEmittedExpression"] = 288] = "PartiallyEmittedExpression";
SyntaxKind[SyntaxKind["CommaListExpression"] = 289] = "CommaListExpression";
SyntaxKind[SyntaxKind["MergeDeclarationMarker"] = 290] = "MergeDeclarationMarker";
SyntaxKind[SyntaxKind["EndOfDeclarationMarker"] = 291] = "EndOfDeclarationMarker";
// Enum value count
SyntaxKind[SyntaxKind["Count"] = 292] = "Count";
// Markers
SyntaxKind[SyntaxKind["FirstAssignment"] = 58] = "FirstAssignment";
SyntaxKind[SyntaxKind["LastAssignment"] = 70] = "LastAssignment";
SyntaxKind[SyntaxKind["FirstCompoundAssignment"] = 59] = "FirstCompoundAssignment";
SyntaxKind[SyntaxKind["LastCompoundAssignment"] = 70] = "LastCompoundAssignment";
SyntaxKind[SyntaxKind["FirstReservedWord"] = 72] = "FirstReservedWord";
SyntaxKind[SyntaxKind["LastReservedWord"] = 107] = "LastReservedWord";
SyntaxKind[SyntaxKind["FirstKeyword"] = 72] = "FirstKeyword";
SyntaxKind[SyntaxKind["LastKeyword"] = 142] = "LastKeyword";
SyntaxKind[SyntaxKind["FirstFutureReservedWord"] = 108] = "FirstFutureReservedWord";
SyntaxKind[SyntaxKind["LastFutureReservedWord"] = 116] = "LastFutureReservedWord";
SyntaxKind[SyntaxKind["FirstTypeNode"] = 158] = "FirstTypeNode";
SyntaxKind[SyntaxKind["LastTypeNode"] = 173] = "LastTypeNode";
SyntaxKind[SyntaxKind["FirstPunctuation"] = 17] = "FirstPunctuation";
SyntaxKind[SyntaxKind["LastPunctuation"] = 70] = "LastPunctuation";
SyntaxKind[SyntaxKind["FirstToken"] = 0] = "FirstToken";
SyntaxKind[SyntaxKind["LastToken"] = 142] = "LastToken";
SyntaxKind[SyntaxKind["FirstTriviaToken"] = 2] = "FirstTriviaToken";
SyntaxKind[SyntaxKind["LastTriviaToken"] = 7] = "LastTriviaToken";
SyntaxKind[SyntaxKind["FirstLiteralToken"] = 8] = "FirstLiteralToken";
SyntaxKind[SyntaxKind["LastLiteralToken"] = 13] = "LastLiteralToken";
SyntaxKind[SyntaxKind["FirstTemplateToken"] = 13] = "FirstTemplateToken";
SyntaxKind[SyntaxKind["LastTemplateToken"] = 16] = "LastTemplateToken";
SyntaxKind[SyntaxKind["FirstBinaryOperator"] = 27] = "FirstBinaryOperator";
SyntaxKind[SyntaxKind["LastBinaryOperator"] = 70] = "LastBinaryOperator";
SyntaxKind[SyntaxKind["FirstNode"] = 143] = "FirstNode";
SyntaxKind[SyntaxKind["FirstJSDocNode"] = 267] = "FirstJSDocNode";
SyntaxKind[SyntaxKind["LastJSDocNode"] = 285] = "LastJSDocNode";
SyntaxKind[SyntaxKind["FirstJSDocTagNode"] = 276] = "FirstJSDocTagNode";
SyntaxKind[SyntaxKind["LastJSDocTagNode"] = 285] = "LastJSDocTagNode";
})(SyntaxKind = ts.SyntaxKind || (ts.SyntaxKind = {}));
var NodeFlags;
(function (NodeFlags) {
NodeFlags[NodeFlags["None"] = 0] = "None";
NodeFlags[NodeFlags["Let"] = 1] = "Let";
NodeFlags[NodeFlags["Const"] = 2] = "Const";
NodeFlags[NodeFlags["NestedNamespace"] = 4] = "NestedNamespace";
NodeFlags[NodeFlags["Synthesized"] = 8] = "Synthesized";
NodeFlags[NodeFlags["Namespace"] = 16] = "Namespace";
NodeFlags[NodeFlags["ExportContext"] = 32] = "ExportContext";
NodeFlags[NodeFlags["ContainsThis"] = 64] = "ContainsThis";
NodeFlags[NodeFlags["HasImplicitReturn"] = 128] = "HasImplicitReturn";
NodeFlags[NodeFlags["HasExplicitReturn"] = 256] = "HasExplicitReturn";
NodeFlags[NodeFlags["GlobalAugmentation"] = 512] = "GlobalAugmentation";
NodeFlags[NodeFlags["HasAsyncFunctions"] = 1024] = "HasAsyncFunctions";
NodeFlags[NodeFlags["DisallowInContext"] = 2048] = "DisallowInContext";
NodeFlags[NodeFlags["YieldContext"] = 4096] = "YieldContext";
NodeFlags[NodeFlags["DecoratorContext"] = 8192] = "DecoratorContext";
NodeFlags[NodeFlags["AwaitContext"] = 16384] = "AwaitContext";
NodeFlags[NodeFlags["ThisNodeHasError"] = 32768] = "ThisNodeHasError";
NodeFlags[NodeFlags["JavaScriptFile"] = 65536] = "JavaScriptFile";
NodeFlags[NodeFlags["ThisNodeOrAnySubNodesHasError"] = 131072] = "ThisNodeOrAnySubNodesHasError";
NodeFlags[NodeFlags["HasAggregatedChildData"] = 262144] = "HasAggregatedChildData";
// This flag will be set when the parser encounters a dynamic import expression so that module resolution
// will not have to walk the tree if the flag is not set. However, this flag is just a approximation because
// once it is set, the flag never gets cleared (hence why it's named "PossiblyContainsDynamicImport").
// During editing, if dynamic import is removed, incremental parsing will *NOT* update this flag. This means that the tree will always be traversed
// during module resolution. However, the removal operation should not occur often and in the case of the
// removal, it is likely that users will add the import anyway.
// The advantage of this approach is its simplicity. For the case of batch compilation,
// we guarantee that users won't have to pay the price of walking the tree if a dynamic import isn't used.
/* @internal */
NodeFlags[NodeFlags["PossiblyContainsDynamicImport"] = 524288] = "PossiblyContainsDynamicImport";
NodeFlags[NodeFlags["JSDoc"] = 1048576] = "JSDoc";
NodeFlags[NodeFlags["BlockScoped"] = 3] = "BlockScoped";
NodeFlags[NodeFlags["ReachabilityCheckFlags"] = 384] = "ReachabilityCheckFlags";
NodeFlags[NodeFlags["ReachabilityAndEmitFlags"] = 1408] = "ReachabilityAndEmitFlags";
// Parsing context flags
NodeFlags[NodeFlags["ContextFlags"] = 96256] = "ContextFlags";
// Exclude these flags when parsing a Type
NodeFlags[NodeFlags["TypeExcludesFlags"] = 20480] = "TypeExcludesFlags";
})(NodeFlags = ts.NodeFlags || (ts.NodeFlags = {}));
var ModifierFlags;
(function (ModifierFlags) {
ModifierFlags[ModifierFlags["None"] = 0] = "None";
ModifierFlags[ModifierFlags["Export"] = 1] = "Export";
ModifierFlags[ModifierFlags["Ambient"] = 2] = "Ambient";
ModifierFlags[ModifierFlags["Public"] = 4] = "Public";
ModifierFlags[ModifierFlags["Private"] = 8] = "Private";
ModifierFlags[ModifierFlags["Protected"] = 16] = "Protected";
ModifierFlags[ModifierFlags["Static"] = 32] = "Static";
ModifierFlags[ModifierFlags["Readonly"] = 64] = "Readonly";
ModifierFlags[ModifierFlags["Abstract"] = 128] = "Abstract";
ModifierFlags[ModifierFlags["Async"] = 256] = "Async";
ModifierFlags[ModifierFlags["Default"] = 512] = "Default";
ModifierFlags[ModifierFlags["Const"] = 2048] = "Const";
ModifierFlags[ModifierFlags["HasComputedFlags"] = 536870912] = "HasComputedFlags";
ModifierFlags[ModifierFlags["AccessibilityModifier"] = 28] = "AccessibilityModifier";
// Accessibility modifiers and 'readonly' can be attached to a parameter in a constructor to make it a property.
ModifierFlags[ModifierFlags["ParameterPropertyModifier"] = 92] = "ParameterPropertyModifier";
ModifierFlags[ModifierFlags["NonPublicAccessibilityModifier"] = 24] = "NonPublicAccessibilityModifier";
ModifierFlags[ModifierFlags["TypeScriptModifier"] = 2270] = "TypeScriptModifier";
ModifierFlags[ModifierFlags["ExportDefault"] = 513] = "ExportDefault";
})(ModifierFlags = ts.ModifierFlags || (ts.ModifierFlags = {}));
var JsxFlags;
(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";
})(JsxFlags = ts.JsxFlags || (ts.JsxFlags = {}));
/* @internal */
var RelationComparisonResult;
(function (RelationComparisonResult) {
RelationComparisonResult[RelationComparisonResult["Succeeded"] = 1] = "Succeeded";
RelationComparisonResult[RelationComparisonResult["Failed"] = 2] = "Failed";
RelationComparisonResult[RelationComparisonResult["FailedAndReported"] = 3] = "FailedAndReported";
})(RelationComparisonResult = ts.RelationComparisonResult || (ts.RelationComparisonResult = {}));
/*@internal*/
var GeneratedIdentifierKind;
(function (GeneratedIdentifierKind) {
GeneratedIdentifierKind[GeneratedIdentifierKind["None"] = 0] = "None";
GeneratedIdentifierKind[GeneratedIdentifierKind["Auto"] = 1] = "Auto";
GeneratedIdentifierKind[GeneratedIdentifierKind["Loop"] = 2] = "Loop";
GeneratedIdentifierKind[GeneratedIdentifierKind["Unique"] = 3] = "Unique";
GeneratedIdentifierKind[GeneratedIdentifierKind["Node"] = 4] = "Node";
})(GeneratedIdentifierKind = ts.GeneratedIdentifierKind || (ts.GeneratedIdentifierKind = {}));
/* @internal */
var NumericLiteralFlags;
(function (NumericLiteralFlags) {
NumericLiteralFlags[NumericLiteralFlags["None"] = 0] = "None";
NumericLiteralFlags[NumericLiteralFlags["Scientific"] = 2] = "Scientific";
NumericLiteralFlags[NumericLiteralFlags["Octal"] = 4] = "Octal";
NumericLiteralFlags[NumericLiteralFlags["HexSpecifier"] = 8] = "HexSpecifier";
NumericLiteralFlags[NumericLiteralFlags["BinarySpecifier"] = 16] = "BinarySpecifier";
NumericLiteralFlags[NumericLiteralFlags["OctalSpecifier"] = 32] = "OctalSpecifier";
NumericLiteralFlags[NumericLiteralFlags["BinaryOrOctalSpecifier"] = 48] = "BinaryOrOctalSpecifier";
})(NumericLiteralFlags = ts.NumericLiteralFlags || (ts.NumericLiteralFlags = {}));
var FlowFlags;
(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["ArrayMutation"] = 256] = "ArrayMutation";
FlowFlags[FlowFlags["Referenced"] = 512] = "Referenced";
FlowFlags[FlowFlags["Shared"] = 1024] = "Shared";
FlowFlags[FlowFlags["PreFinally"] = 2048] = "PreFinally";
FlowFlags[FlowFlags["AfterFinally"] = 4096] = "AfterFinally";
FlowFlags[FlowFlags["Label"] = 12] = "Label";
FlowFlags[FlowFlags["Condition"] = 96] = "Condition";
})(FlowFlags = ts.FlowFlags || (ts.FlowFlags = {}));
var OperationCanceledException = /** @class */ (function () {
function OperationCanceledException() {
}
return OperationCanceledException;
}());
ts.OperationCanceledException = OperationCanceledException;
/* @internal */
var StructureIsReused;
(function (StructureIsReused) {
StructureIsReused[StructureIsReused["Not"] = 0] = "Not";
StructureIsReused[StructureIsReused["SafeModules"] = 1] = "SafeModules";
StructureIsReused[StructureIsReused["Completely"] = 2] = "Completely";
})(StructureIsReused = ts.StructureIsReused || (ts.StructureIsReused = {}));
/** Return code used by getEmitOutput function to indicate status of the function */
var ExitStatus;
(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";
})(ExitStatus = ts.ExitStatus || (ts.ExitStatus = {}));
var NodeBuilderFlags;
(function (NodeBuilderFlags) {
NodeBuilderFlags[NodeBuilderFlags["None"] = 0] = "None";
// Options
NodeBuilderFlags[NodeBuilderFlags["NoTruncation"] = 1] = "NoTruncation";
NodeBuilderFlags[NodeBuilderFlags["WriteArrayAsGenericType"] = 2] = "WriteArrayAsGenericType";
NodeBuilderFlags[NodeBuilderFlags["WriteTypeArgumentsOfSignature"] = 32] = "WriteTypeArgumentsOfSignature";
NodeBuilderFlags[NodeBuilderFlags["UseFullyQualifiedType"] = 64] = "UseFullyQualifiedType";
NodeBuilderFlags[NodeBuilderFlags["SuppressAnyReturnType"] = 256] = "SuppressAnyReturnType";
NodeBuilderFlags[NodeBuilderFlags["WriteTypeParametersInQualifiedName"] = 512] = "WriteTypeParametersInQualifiedName";
// Error handling
NodeBuilderFlags[NodeBuilderFlags["AllowThisInObjectLiteral"] = 1024] = "AllowThisInObjectLiteral";
NodeBuilderFlags[NodeBuilderFlags["AllowQualifedNameInPlaceOfIdentifier"] = 2048] = "AllowQualifedNameInPlaceOfIdentifier";
NodeBuilderFlags[NodeBuilderFlags["AllowAnonymousIdentifier"] = 8192] = "AllowAnonymousIdentifier";
NodeBuilderFlags[NodeBuilderFlags["AllowEmptyUnionOrIntersection"] = 16384] = "AllowEmptyUnionOrIntersection";
NodeBuilderFlags[NodeBuilderFlags["AllowEmptyTuple"] = 32768] = "AllowEmptyTuple";
NodeBuilderFlags[NodeBuilderFlags["IgnoreErrors"] = 60416] = "IgnoreErrors";
// State
NodeBuilderFlags[NodeBuilderFlags["InObjectTypeLiteral"] = 1048576] = "InObjectTypeLiteral";
NodeBuilderFlags[NodeBuilderFlags["InTypeAlias"] = 8388608] = "InTypeAlias";
})(NodeBuilderFlags = ts.NodeBuilderFlags || (ts.NodeBuilderFlags = {}));
var TypeFormatFlags;
(function (TypeFormatFlags) {
TypeFormatFlags[TypeFormatFlags["None"] = 0] = "None";
TypeFormatFlags[TypeFormatFlags["WriteArrayAsGenericType"] = 1] = "WriteArrayAsGenericType";
TypeFormatFlags[TypeFormatFlags["UseTypeOfFunction"] = 4] = "UseTypeOfFunction";
TypeFormatFlags[TypeFormatFlags["NoTruncation"] = 8] = "NoTruncation";
TypeFormatFlags[TypeFormatFlags["WriteArrowStyleSignature"] = 16] = "WriteArrowStyleSignature";
TypeFormatFlags[TypeFormatFlags["WriteOwnNameForAnyLike"] = 32] = "WriteOwnNameForAnyLike";
TypeFormatFlags[TypeFormatFlags["WriteTypeArgumentsOfSignature"] = 64] = "WriteTypeArgumentsOfSignature";
TypeFormatFlags[TypeFormatFlags["InElementType"] = 128] = "InElementType";
TypeFormatFlags[TypeFormatFlags["UseFullyQualifiedType"] = 256] = "UseFullyQualifiedType";
TypeFormatFlags[TypeFormatFlags["InFirstTypeArgument"] = 512] = "InFirstTypeArgument";
TypeFormatFlags[TypeFormatFlags["InTypeAlias"] = 1024] = "InTypeAlias";
TypeFormatFlags[TypeFormatFlags["SuppressAnyReturnType"] = 4096] = "SuppressAnyReturnType";
TypeFormatFlags[TypeFormatFlags["AddUndefined"] = 8192] = "AddUndefined";
TypeFormatFlags[TypeFormatFlags["WriteClassExpressionAsTypeLiteral"] = 16384] = "WriteClassExpressionAsTypeLiteral";
TypeFormatFlags[TypeFormatFlags["InArrayType"] = 32768] = "InArrayType";
TypeFormatFlags[TypeFormatFlags["UseAliasDefinedOutsideCurrentScope"] = 65536] = "UseAliasDefinedOutsideCurrentScope";
// even though `T` can't be accessed in the current scope.
})(TypeFormatFlags = ts.TypeFormatFlags || (ts.TypeFormatFlags = {}));
var SymbolFormatFlags;
(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";
})(SymbolFormatFlags = ts.SymbolFormatFlags || (ts.SymbolFormatFlags = {}));
/* @internal */
var SymbolAccessibility;
(function (SymbolAccessibility) {
SymbolAccessibility[SymbolAccessibility["Accessible"] = 0] = "Accessible";
SymbolAccessibility[SymbolAccessibility["NotAccessible"] = 1] = "NotAccessible";
SymbolAccessibility[SymbolAccessibility["CannotBeNamed"] = 2] = "CannotBeNamed";
})(SymbolAccessibility = ts.SymbolAccessibility || (ts.SymbolAccessibility = {}));
/* @internal */
var SyntheticSymbolKind;
(function (SyntheticSymbolKind) {
SyntheticSymbolKind[SyntheticSymbolKind["UnionOrIntersection"] = 0] = "UnionOrIntersection";
SyntheticSymbolKind[SyntheticSymbolKind["Spread"] = 1] = "Spread";
})(SyntheticSymbolKind = ts.SyntheticSymbolKind || (ts.SyntheticSymbolKind = {}));
var TypePredicateKind;
(function (TypePredicateKind) {
TypePredicateKind[TypePredicateKind["This"] = 0] = "This";
TypePredicateKind[TypePredicateKind["Identifier"] = 1] = "Identifier";
})(TypePredicateKind = ts.TypePredicateKind || (ts.TypePredicateKind = {}));
/** Indicates how to serialize the name for a TypeReferenceNode when emitting decorator metadata */
/* @internal */
var TypeReferenceSerializationKind;
(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["VoidNullableOrNeverType"] = 2] = "VoidNullableOrNeverType";
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["Promise"] = 8] = "Promise";
TypeReferenceSerializationKind[TypeReferenceSerializationKind["TypeWithCallSignature"] = 9] = "TypeWithCallSignature";
// with call signatures.
TypeReferenceSerializationKind[TypeReferenceSerializationKind["ObjectType"] = 10] = "ObjectType";
})(TypeReferenceSerializationKind = ts.TypeReferenceSerializationKind || (ts.TypeReferenceSerializationKind = {}));
var SymbolFlags;
(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["Alias"] = 2097152] = "Alias";
SymbolFlags[SymbolFlags["Prototype"] = 4194304] = "Prototype";
SymbolFlags[SymbolFlags["ExportStar"] = 8388608] = "ExportStar";
SymbolFlags[SymbolFlags["Optional"] = 16777216] = "Optional";
SymbolFlags[SymbolFlags["Transient"] = 33554432] = "Transient";
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"] = 2097152] = "AliasExcludes";
SymbolFlags[SymbolFlags["ModuleMember"] = 2623475] = "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["ClassMember"] = 106500] = "ClassMember";
/* @internal */
// The set of things we consider semantically classifiable. Used to speed up the LS during
// classification.
SymbolFlags[SymbolFlags["Classifiable"] = 788448] = "